Linux git使用方法雜記(持續更新...)

 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



2. linux目錄中遞歸刪除同名文件夾

    比如,原來使用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




發佈了60 篇原創文章 · 獲贊 173 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章