首页 > 代码库 > Pro Git (笔记)

Pro Git (笔记)

Pro Git

跳转至: 导航、 搜索
  1. working - staging - commited
  2. .gitignore
    1. *.a 忽略所有*.a
    2.  !/common/my.a 但是这个.a除外-
  3. rm ... => git rm -f 本地不再保留
  4. git rm --cached readme.txt 本地保留,但不再跟踪
  5. git rm logs/\*.log 注意这里需要转义以绕过shell
  6. git log -p -2 最近的2次commit
    1. --graph选项
  7. 修复最近的一次commit:git commit --amend
  8. Unstage(一次提交了多个文件,但实际上想分批提交):git reset HEAD file_to_unstage
  9. Unmodify(取消本地修改):git checkout -- file_to_recover(revert?)
  10. git remote -v
  11. git remote add name git://.../some.git
  12. git fetch remote_repo 自动创建分支?
  13. git push [remote_name] [local_branch]
  14. git tag
    1. lightweight:指向某一特定commit,不会改变
    2. annotated:?git tag -a v1.0 -m ‘some msg‘
    3. -S 用GPG签名,?
  15. git checkout -b xxx 检出同时创建分支
    1. 合并修改:首先检出master分支,然后:git merge xxx
  16. 处理merge冲突:3路合并
    1. 首先git status查看unmerged文件(即冲突)
    2. 修改,然后重新add-commit即可
  17. Log-running分支,不同的stable级别,。。。
  18. Remote分支
    1. 删除Remote分支:git push [remote_name] :[branch] (奇怪的语法?)
  19. Tracking分支:git checkout --track [remote_name]/[branch]
  20. Rebase:把分支修改作为patch应用到另一分支(master)
    1. git rebase master(注意:当前工作分支已发生变化,而master上可以做一个fast-forward合并。。。)
    2. rebase适合于把你的本地贡献作为一个patch补丁提交。。。(rebase到上游的最新master)
    3. --onto master branch branch_newfeature 优先体验新特性而不用合并所有branch
    4. 注意:不要rebase你已经push出去的commit(这说明replay过程不是幂等的!)
  21. *git push over HTTP
  22. 初始建立仓库:git clone --bare myproj myproj.git
    1. 相当于cp -Rf myproj/.git myproj.git
  23. git apply some.patch
    1. git am ???
  24. git cherry-pick [SHA-1 prefix name]
  25. git add -i 交互式的Staging
  26. git blame
  27. git bisect
  28. *git submodule add git://.../a.git a
  29. **Subtree合并? 

Pro Git (笔记)