• 工作7年收集到的git命令


    概念

    git 中的术语解释:

    clipboard.png

    • 仓库也叫版本库(repository)
    • stage:暂存区,add 后会存到暂存区,commit 后提交到版本库

    git 安装

    linux 下安装 git

    • 第一种方法:yum install git-core 安装的版本比较老

    • 第二种方法:(我是 linux centos)

      • 卸载老版本
      yum remove gi
      
      • 安装依赖
      yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc
      yum install gcc perl-ExtUtils-MakeMaker
      
      • 执行安装
      wget https://github.com/git/git/archive/v2.2.1.tar.gz
      tar -zxvf v2.2.1
      cd git-2.2.1
      make configure
      ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
      make
      make install
      echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
      source /etc/bashrc
      

    初始化一个仓库用

    1. 先新建一个文件夹 mkdir test
    2. 进入该文件夹执行 git init 命令,就能初始化仓库了

    命令合集

    提交相关

    添加文件到仓库(实际就是把工作区的内容添加到暂存区)

    git add 
    

    提交代码(就是把暂存区的内容提交到当前分支)

    git commit -m "说明"
    

    强制提交,比如用旧版本覆盖老版本时原本会报错,就可以用下面的命令

    git push -f origin master
    

    查看提交历史

    git log
    

    记录着操作命令,也就是命令历史

    git reflog
    

    将现有工作区的隐藏起来(一个分支开发到一半,代码还不能提交,但是需要切换到别的分支去看看代码时可以使用)

    git stash
    

    恢复隐藏的工作区

    git stash pop
    

    清空隐藏的工作区

    git stash clear
    git stash drop stash@{0} 删除第一个队列
    

    查看隐藏的工作区的内容

    git stash list
    

    指定恢复哪一个隐藏的工作区内容

    git stash apply stash@{0}
    

    提交时忽略指定文件

    • 在.gitignore 中写要忽略的文件名即可
    • 如果已经使用过 add 命令了,那么要先执行 git rm -r --cached .
    • 然后在使用 add . 才能加入忽略规则

    合并分支时合为一次提交

    git merge --squash dev
    

    取消命令
    取消 rebase

    git rebase --abort
    

    取消提交了的内容

    git reset --soft HEAD^
    

    清除缓存/清除已经推上去的不要的文件

    git rm -r --cached . //需要完整复制
    

    清除推上去的 idea 相关文件

    git rm --cached -r .idea
    

    撤销相关

    将工作区的修改撤销掉

    git checkout -- a.txt (注意:--很重要,如果没有--,这个命令就变成了切换分支)
    

    这个撤销会有两种效果:

    第一种是修改后没有放到暂存区,那么撤销后会回到和版本库一样的状态

    第二种是修改后放入了暂存区,又做了修改,那么撤销后会回到和暂存区一样的状态。

    总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。

    将暂存区的修改撤销掉

    git reset HEAD file
    

    代码回退 (提交一次就有一个版本,HEAD 表示当前版本,HEAD^表示上一个版本,HEAD~10 表示前第 100 个版本)

    git reset --hard HEAD^ //回退到上一个版本
    

    代码回退之后还可以前进,只要知道前一个版本的版本号

    git reset --hard 3628164 //版本号不用写全,前几位即可
    

    如果删除了文件,想让版本库里的文件也删掉

    #第一步
    git rm -- a.txt
    #第二步
    git commit -m ""
    

    想让工作区删除的文件恢复

    git checkout -- a.txt
    

    撤销新增的文件

    rm filename / rm dir -rf //单个文件
    git clean -xdf //所有文件
    

    远程库推送相关

    关联远程库

    git remote add origin git@github.com:mmcLine/firstGit.git
    

    取消关联取消关联

    git remote remove origin
    

    第一次推送信息

    git push -u origin master
    

    不是第一次推送信息

    git push origin master
    

    查看远程库的信息

    git remote
    # 更详细的信息
    git remote -v
    

    推送远程仓库有冲突的处理

    git push origin dev #发现失败,有冲突
    git pull #把最新的提交抓下来(git pull如果失败运行 git branch --set-upstream dev origin/dev)
    # 在合并,如果有冲突就手动解决后在提交
    

    更新远程库的代码

    git fetch origin
    git rebase origin
    

    克隆代码(仅克隆最近的一次提交记录的最新版本)

    git clone url --depth=1
    

    分支相关

    创建分支

    git branch <name>
    

    切换分支

    git checkout dev
    

    创建并切换分支

    git checkout -b dev
    

    查看当前分支

    git branch
    

    把 dev 分支合并到 master 上

    git merge dev
    

    删除分支

    git branch -D dev
    

    查看提交的分支表

    git log --graph
    

    禁用 Fast forward 的合并,禁用后每次都会有新的提交

    git merge --no-ff -m "merge with no-ff" dev
    

    仅合并某次提交

    # commitid是提交的id
    git  cherry-pick commitid
    

    其他

    设置 git 操作命令的别名

     git config --global alias.st status 将git status 设置别名为git st
    

    配置文件在.git 里面的 config 里面,或者对应用户的家目录的.gitconfig 里面

    • 删除别名就在文件里删除别名就好了

    github 相关操作

    1. 从 github 下载代码
    git clone git://github.com/mmcLine/firstGit.git
    # 也可使用https
    git clone https://github.com/mmcLine/firstGit.git
    
    1. 推送代码到 github

    修改了代码之后先

    git add test.txt
    git commit -m "test"
    git push -u origin master 第一次推送命令
    git push origin master 以后的推送命令
    

    创建项目并关联

    1. 先在服务器上创建一个文件夹
    2. 然后在文件夹下运行 git init --bare
    3. 在本地创建一个仓库
    4. 然后关联远程库
    git remote add origin root@192.168.128.190:/data/git/tofocus
    
    1. 然后上传本地项目

    遇到的错误

    1. 添加远程配置时出现 fatal: 远程 origin 已经存在。提示

    处理方法:git remote rm origin

    1. 从 github 克隆时报这个错误 while accessing https://github.com/mmcLine/gitskills.git/info/refs

    处理方法: git 的版本太低了,我之前是 yum 安装了,我卸载了用源码安装就好了

    处理冲突:

    1. 更改冲突的地方
    2. 在 git gui 里面把冲突的类点一下

    1. 让上面那个区域的类都没有了。
    2. 然后 git rebase --continue

    __EOF__

  • 本文作者: 女友在高考
  • 本文链接: https://www.cnblogs.com/javammc/p/16753354.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    技术分享 | 常见接口协议解析
    Netty启动之后马上退出问题排查
    《UNIX网络编程》第一步:编写自己的daytime客户端,并从daytime服务器获取时间
    Mysql高阶语句 (一)
    重磅!首例植入配备 BCI 的神经刺激器的患者恢复手臂功能
    Unity—项目小技术总结
    软件工程与计算总结(十九)软件测试
    WPF动画的使用
    数据结构--》数组和广义表:从基础到应用的全面剖析
    java中Array(数组)、List(列表)、Set(集合)、Map(映射)、Queue(队列)详解
  • 原文地址:https://www.cnblogs.com/javammc/p/16753354.html