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