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