git使用的一些小技巧
2013-12-16 12:17
295 查看
自己平常使用git记录下来的一些小技巧,有些很实用,有些很普通,分享给大家,会持续补充
1. 使用.gitignore忽略文件
文件 .gitignore 的格式规范如下:
• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。 • 可以使用标准的 glob 模式匹配。 • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。 • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
2. git rm file:从staged区中移除文件,同时把文件从磁盘上删除
git rm --cached file:从staged区中移除文件,但文件保留在磁盘上
3. 命令 git rm \*.log:会递归删除当前目录及其子目录下的所有.log文件,如果只是使用git rm *.log,则不会递归子目录(这时使用的是shell的模式匹配处理),git的匹配处理和shell的匹配处理有区别
4. git log --pretty=format:"%h - %an, %ar : %s"
选项 说明
%H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串 %T 树对象(tree)的完整哈希字串 %t 树对象的简短哈希字串 %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串
%an 作者(author)的名字 %ae 作者的电子邮件地址 %ad 作者修订日期(可以用 -date= 选项定制格式) %ar 作者修订日期,按多久以前的方式显示 %cn 提交者(committer)的名字 %ce 提交者的电子邮件地址 %cd 提交日期 %cr 提交日期,按多久以前的方式显示
%s 提交说明
5. git push默认不会推送本地标签到远程仓库,要推送使用 git push origin tag name或者使用git push origin --tags一次推送所有标签
6. 使用git stash暂存文件,就是如果本地做了一些修改不想提交,但是又想从服务器pull代码,那么可以先将本地的改动stash一下,就可以使用git pull了,然后可以使用git stash pop将暂存的改动和当前代码合并,更多文档见git help stash;
7. git branch -r:查看远程分支
git checkout -b local remote:获取远程分支
8. git fetch不会改变工作空间副本,只是抓取远程快照(即修改.git文件夹的内容)
9. 跟踪一个文件的提交记录: git log -p "filename"
10. git blame "filename": 显示一个文件每一行的最后一次提交记录
11. git log --stat:显示改变的概要
12. 使用git reset了之后,之前的提交的commit没有了,可以使用git log --all来查看以前的commit,并选择恢复;
13. 也可以使用git reflog查看HEAD历史记录;
14. git修改文件名:git mv -f readme.txt README.txt;
15. git ls-files [--deleted] ;可以使用 git ls-files --deleted | xargs git rm批量提交删除
16. To remove a submodule you need to:
Delete the relevant line from the .gitmodules file.
Delete the relevant section from .git/config.
Run git rm --cached path_to_submodule (no trailing slash).
Commit the super project.
Delete the now untracked submodule files.
17. 更新submodule步骤:cd submodule_dir; git checkout master; git pull;
18. git submodule foreach git pull origin master:批量更新全部submodule;
19. 对于二进制文件的冲突,你肯定不想通过编辑二进制文件来解决冲突,那是不可能完成的事情。你要做的就是:要么选择对方的修改,要么选择自己的修改。你可以用git checkout的
19. 本地已有分支track远程分支: git branch -u remote/remote_branch local_branch
20. 对repo的所有工程执行同样的git命令: repo forall -c git checkout -b local origin/remote_branch,如果希望在每次执行命令之前打印出当前路径,可以加上-p参数,即 repo forall -p -c ....
21. git checkout -p [branch]: 这个命令可以用来打补丁。这个命令主要用来比较两个分支间的差异内容,并提供交互式的界面来选择进一步的操作。这个命令不仅可以比较两个分支间的差异,还可以比较单个文件的差异哦!
22. 比较两个分支的commits差异:
23.
1. 使用.gitignore忽略文件
文件 .gitignore 的格式规范如下:
• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。 • 可以使用标准的 glob 模式匹配。 • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。 • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
2. git rm file:从staged区中移除文件,同时把文件从磁盘上删除
git rm --cached file:从staged区中移除文件,但文件保留在磁盘上
3. 命令 git rm \*.log:会递归删除当前目录及其子目录下的所有.log文件,如果只是使用git rm *.log,则不会递归子目录(这时使用的是shell的模式匹配处理),git的匹配处理和shell的匹配处理有区别
4. git log --pretty=format:"%h - %an, %ar : %s"
选项 说明
%H 提交对象(commit)的完整哈希字串 %h 提交对象的简短哈希字串 %T 树对象(tree)的完整哈希字串 %t 树对象的简短哈希字串 %P 父对象(parent)的完整哈希字串 %p 父对象的简短哈希字串
%an 作者(author)的名字 %ae 作者的电子邮件地址 %ad 作者修订日期(可以用 -date= 选项定制格式) %ar 作者修订日期,按多久以前的方式显示 %cn 提交者(committer)的名字 %ce 提交者的电子邮件地址 %cd 提交日期 %cr 提交日期,按多久以前的方式显示
%s 提交说明
5. git push默认不会推送本地标签到远程仓库,要推送使用 git push origin tag name或者使用git push origin --tags一次推送所有标签
6. 使用git stash暂存文件,就是如果本地做了一些修改不想提交,但是又想从服务器pull代码,那么可以先将本地的改动stash一下,就可以使用git pull了,然后可以使用git stash pop将暂存的改动和当前代码合并,更多文档见git help stash;
7. git branch -r:查看远程分支
git checkout -b local remote:获取远程分支
8. git fetch不会改变工作空间副本,只是抓取远程快照(即修改.git文件夹的内容)
9. 跟踪一个文件的提交记录: git log -p "filename"
10. git blame "filename": 显示一个文件每一行的最后一次提交记录
11. git log --stat:显示改变的概要
12. 使用git reset了之后,之前的提交的commit没有了,可以使用git log --all来查看以前的commit,并选择恢复;
13. 也可以使用git reflog查看HEAD历史记录;
14. git修改文件名:git mv -f readme.txt README.txt;
15. git ls-files [--deleted] ;可以使用 git ls-files --deleted | xargs git rm批量提交删除
16. To remove a submodule you need to:
Delete the relevant line from the .gitmodules file.
Delete the relevant section from .git/config.
Run git rm --cached path_to_submodule (no trailing slash).
Commit the super project.
Delete the now untracked submodule files.
17. 更新submodule步骤:cd submodule_dir; git checkout master; git pull;
18. git submodule foreach git pull origin master:批量更新全部submodule;
19. 对于二进制文件的冲突,你肯定不想通过编辑二进制文件来解决冲突,那是不可能完成的事情。你要做的就是:要么选择对方的修改,要么选择自己的修改。你可以用git checkout的
--theirs或
--ours选项。
git pull git checkout --theirs YOUR_BINARY_FILE //git checkout --ours YOUR_BINARY_FILE git add YOUR_BINARY_FILE git commit -m 'merged with the remote repos.'git push
19. 本地已有分支track远程分支: git branch -u remote/remote_branch local_branch
20. 对repo的所有工程执行同样的git命令: repo forall -c git checkout -b local origin/remote_branch,如果希望在每次执行命令之前打印出当前路径,可以加上-p参数,即 repo forall -p -c ....
21. git checkout -p [branch]: 这个命令可以用来打补丁。这个命令主要用来比较两个分支间的差异内容,并提供交互式的界面来选择进一步的操作。这个命令不仅可以比较两个分支间的差异,还可以比较单个文件的差异哦!
22. 比较两个分支的commits差异:
git log origin/master..origin/develop --oneline --decorate
23.
相关文章推荐
- google 浏览器使用的一些小技巧
- [置顶] git常用的一些小技巧
- TextView使用一些小技巧
- EditText的使用的一些小技巧
- 使用windows7的一些小技巧
- 关于android图片加载框架univser-imageloader使用的一些小技巧记录
- 一些使用Vim的小技巧
- <C#>_使用代码编辑控件属性的一些小技巧
- Windows使用中的一些小技巧
- 一些使用VC 的小技巧
- 使用 git 过程中总结的一些技巧分享
- 使用jquery时一些小技巧的总结
- git的一些简单使用
- iPhone开发中一些使用小技巧
- git使用小技巧,转
- 神马聊天——Swing使用的一些小技巧
- git 一些使用操作
- 一些linux应用小技巧,网络相关,系统管理,shell,程序使用
- Golang 中使用 JSON 的一些小技巧 陶文 陶文 3 个月前 有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用。 本来用一个json:",string" 就可以支持了
- 一些标签及小技巧的积累和使用