GIT使用
1. git查找某个文件某次修改记录
(1). 首先切换到要查看的文件所在的目录:如:我想查看default_workspace.xml这个文件的某次修改情况,该文件位于~/android/android4.2/dev/Trunk/Android/Android4.2/kernel/drivers/video/rockchip/vga$这个目录中。
cd ~/android/backup/jw42temp/dev/Trunk/Android/Android4.2/device/rockchip/rk30sdk/overlay/packages/apps/Launcher2/res/xml-sw720dp$
(2). git log --pretty=oneline 文件名 显示出这个文件的所有提示记录,--pretty=oneline表示提交信息以一行的形式显示。
(3). git show 哈希值。如我想查看 提示信息为“Launcher修改:1.屏幕页数改为3屏 2.默认第二屏为主页 3.添加桌面常用图标 4.Hotseat修改”的修改情况。
git show dae876432cfbc27765df3bbf947769bb2a79d9ba
比如,原来使用SVN管理的工程,现在迁移到GIT上面来,原来每个目录下都有.svn文件夹,现在已经不需要了,需要删除,进入源码目录,使用以下命令递归删除.svn文件夹。
find . -name '.svn' -type d | xargs rm -rf
3. 更改服务端GIT地址
git remote set-url origin 服务端git地址
4. push本地新的分支到远程
本地上创建了一个新的分支,如:lzr-branch, 想要push到远程服务器上,但是,怕影响原来的代码,所以远程上同步一个新的分支
git push original lzr-branch
5. GIT 批量删除文件
git status ./ |awk '{if($2=="deleted:"){print $3}}'|xargs git rm
6. GIT 空白提交
git commit --allow-empty -m "Empty"
7. git status 只显示修改过的文件(状态为modified)
git st | awk '{if ( $2 == "modified:") { print $3}}'
8. 通常,合并分支时,Git会用Fast forward模式,这种模式下,删除分支后,会丢掉分支信息。如果使用--no-ff 强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
$ git merge --no-ff -m "merge with no-ff" dev
9. git stash 与 git stash pop的使用
当手头工作没有完成时,先把工作现场git stash
一下,然后去创建临时分支修复bug,修复后合并分支并回到原分支上,再git stash pop
,回到工作现场。
参考: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137602359178794d966923e5c4134bc8bf98dfb03aea3000
10. 从本地推送分支
git push origin branch-name
如果推送失败,先用git pull抓取远程的新提交
11. 在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name 本地和远程分支的名称最好一致
12. 建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
13. 创建带有说明的标签,用-a指定标签名,-m指定说明文字
$ git tag -a v0.1 -m "version 0.1 released" commit_id
14. 参看文件每行的修改记录
git blame framework/base/services/core/java/com/android/server/am/ActivityManagerService.java | grep "xxxx"
15. 参看文件历史修改记录
gitk framework//services/core/java/com/android/server/am/ActivityManagerService.java
16. 查看某次提交修改的文件列表
git log [commit id] --raw
17. 查看log时显示每次提交的内容差异
git log -p
18. 添加远程仓库
git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个你可以轻松引用的简写:
$ git remote
origin
$ git remote add pb https://github.com/paulboone/ticgit
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
pb https://github.com/paulboone/ticgit (fetch)
pb https://github.com/paulboone/ticgit (push)
19. 推送标签
(1) 推送单个标签
git push origin [tagname]
(2) 推送多个标签
git push origin tags