1. git diff 与 git diff --cached区别
(1) git diff, 工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。
(2)git diff --cached, 已经暂存起来的文件和上次提交时的快照之间的差异
2. git diff的格式理解见 读懂diff 的"五、合并格式的diff" 和 "六、git格式的diff"
3. git fetch 与git pull
(1) git fetch, 只是将远端的数据拉到本地仓库, 并不自动合并到当前工作分支, 自己本地仓库的代码没有改变, 需要执行git merge [branch]才改变
eg. git fech; git merge origin/master
(2) git pull, 自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支
4. 查看本地分支master与远程仓库分支的区别:
(1) git add .
(2) git commit
更新本地分支master
(3) git fetch origin
(4) git diff master origin/master
将远端的数据拉到本地仓库, 更新origin/master, 然后进行比较
5. git rm --cached与 git rm
(1) git rm --cached, 从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中. 比如一些大型日志文件或者一堆 .a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore文件中补上,用 --cached 选项即可
(2) git rm, 从已跟踪文件清单中移除(确切地说,是从暂存区域移除), 并连带从工作目录中删除指定的文件
6. git tag
(1) 每一次发布版本(release)的时候打一个tag, 方便对发布版本清晰的控制.
(2) 需要git push origin [tagname] 才能将标签分享到远程仓库(出现在github的release下).
eg.
git tag -a v0.2 -m "100m image ground true"
git push origin v0.2
7. 创建远程分支并进行跟踪
git push origin develop:develop
注: git push [远程名] [本地分支]:[远程分支], 远程的github就会自动创建一个develop分支
Reference: Git 常用命令详解(二), git提交本地分支到远程分支
8. 图形化git客户端
最终选择: gitg
Reference: 6 Useful Graphical Git Client for Linux