git 使用记录(持续更新)

非git使用教程,只是记录在实际使用中的一些重点、难点,以及需要注意的地方。

子模块 submodule
  • 删除 git rm -rf [path]
    [path]的值在.gitmodule文件中查看。
    举例:git rm -rf src/Libraries/Autofac
远程库
  • 添加远程库
    git remote name url
  • 同步远程库到本地
    1. 建立并切换分支
    2. git pull
分支
  • 设置本地分支跟踪远程分支

      方法一
     
      设置同名本地分支
     `git checkout --track origin/serverfixBranch'
    
      设置不同名本地分支
     `git checkout -b sf origin/serverfixBranch`
    
      方法二
      `git checkout 本地分支名称`
      `git branch -u 远程分支名称`
    
  • 设置本地分支不跟踪任何远程分支
    git checkout 本地分支名称
    git branch --unset-upstream

  • 使用本地分支创建远程分支
    git push 远程库名称 HEAD:待创建的远程分支名称

git reflog的使用

reflog 会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog中。

$ git reflog

b7057a9 HEAD@{0}: reset: moving to b7057a9
98abc5a HEAD@{1}: commit: more stuff added to foo
b7057a9 HEAD@{2}: commit (initial): initial commit

如果要找回我们第二commit,只需要做如下操作:

$ git reset --hard 98abc5a

再来看一下 git 记录:$ git log* 98abc5a (HEAD, master) more stuff added to foo* b7057a9 initial commit所以,如果你因为reset等操作丢失一个提交的时候,你总是可以把它找回来。

除非你的操作已经被git当做垃圾处理掉了,一般是30天以后。

git reset的使用

git reset --soft
只将HEAD移动到指定的提交上。index和working tree(本地工作副本)不动。

git reset --mixed
将HEAD移动到指定的提交上,并且撤销index。working tree(本地工作副本)不动。

git reset --hard
将HEAD移动到指定的提交上,并且撤销index和working tree(本地工作副本)。

你可能感兴趣的:(git 使用记录(持续更新))