非git使用教程,只是记录在实际使用中的一些重点、难点,以及需要注意的地方。
设置永久访问权限
git config --global credential.helper store
子模块
submodule
- 删除
git rm -rf [path]
[path]的值在.gitmodule文件中查看。
举例:git rm -rf src/Libraries/Autofac
远程库
- 添加远程库
git remote name url
- 同步远程库到本地
- 建立并切换分支
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(本地工作副本)。