Git 基本约定和新手指南

基本约定

  • git gui 和 gitk
    通常这两个 tools 是内置的,就不必安装其他 Gui 客户端。
    Git comes with built-in GUI tools for committing (git-gui) and browsing (gitk).

  • 只有满意才 commit(每次 commit 都值得期待)
    修改文件直到你满意,然后 commit,紧接着 push(即:publish 发布了,别人才能看到)。

  • commit 之前首先 pull
    每次 commit 之前,首先 pull 一下,是一个非常好的习惯。

新手指南

  1. 所有的命令,请在本地完全新建一个 .git 库做试验,不要在正式代码库上做试验;
  2. 关于 git pull
    • 经常 git pull,以尽早体验他人提交的成果;
    • 在 git commit 之前,建议首先 git pull,否则在 log 中会出现不必要的 Merge。
      注:commit 之前的 pull(fetch 和 merge) 不会出现在 log 中。
  3. 关于提交(git commit)
    • 首先 git pull,如果有冲突,请求协助;
    • 然后 git status,git difftool,git commit;
    • 提交之后,必须 git push;
    • 经常提交,而不是等到积累了一大堆再提交;
    • 保持完整性
      “经常提交”不是说写一行代码就提交,而必须是一个测试通过的、完整的提交。我们将逐渐实施自动测试和持续集成。
  4. 有不明白的地方请访问谷歌和必应,或者请求协助;
  5. 使用 windows 平台的注意事项
    • 建议安装 git-for-windows,学习使用 git bash(需要熟悉 Linux shell 操作),git gui 图形界面也很不错;
    • 除了 git-for-windows 的 git gui,使用 SourceTree(有中文界面)、GitHub desktop 也值得推荐;
    • 在 git 目录下的,禁止使用 windows 文件管理器拷贝复制删除文件,否则会出现莫名无必要的 merge,徒增负担。
  6. 查看远程库是否有修改
git fetch --dry-run --verbose
git fetch origin v0.3
git status
git log FETCH_HEAD
  1. 不必要的 merge 注解
甲:   B---C
    /
乙: A------------D

甲从 A 开始做了 B 和 C 两个提交(都是在 D 之前),而乙在提交前没有 pull,直接做了 D 提交,乙在 push 到远程时,就会要求你合并 B 和 C 提交,如:

Merge branch 'v0.5' of ssh://192.168.99.236/home/git/w..p...h../doc into v0.5

这是在一个 branch 上的 Merge,区别于 branch 之间的合并。这种合并出现在 log 中完全无必要。请乙在提交 D 之前务必 pull 一下,除非你是刻意不去 git pull。


你可能感兴趣的:(Git 基本约定和新手指南)