git使用

1.查看某個文件的修改記錄:git blame或者 git log
git log --pretty=oneline packaging/opengl-es-mali-midgard.spec  
git show 2998bf4ac8ff13e6e6ecc61336626e126cae75aa
2.git  remote -v
3.git stash,git stash apply,git stash pop,git stash list
0.git commit --amend 修改最後一次提交的信息,在出來的編輯界面,直接編輯註釋信息
1.git fetch 更新本地代碼到最新版本(需要merge才能合到本地代碼中)   
  git merge 合併更新後的代碼到本地    
2.git pull:更新代碼方式的另一種方法(git pull是git fetch和git merge命令的一個組合) 
3.git diff --cached 修改代碼後,查看已修改的內容 
4.git commit -m 'this is memo'    git commit -a -m 'this is memo'
  如果想省掉提交之前的 git add 命令,可以直接用git commit -a -m 'this is memo'  
  commit和commit -a的區別, commit -a相當於:  
  •  第一步:自動地add所有改動的代碼,使得所有的開發代碼都列於index  file中  
  •  第二步:自動地刪除那些在index file中但不在工作樹中的文件 
  •  第三步:執行commit命令來提交  
  git push origin master
5.git log:顯示commit日誌 
  git log --stat:顯示更多內容   
  git log -p :不僅顯示commit日誌,而且同時顯示每次commit的代碼改變。 
  git log --grep="tizen"  
  git log --author=Andy
6.git reset --hard  銷燬自己的修改 
7.git diff HEAD HEAD^ 查看最新版本和上一個版本的差異(一個^表示向前推進一個版本)
  git status查看修改
  
8.回滾代碼:  git revert HEAD  你也可以revert更早的commit,例如:  git revert HEAD^ 
9.git pull 從git服務器取出,並且和本地修改merge, 類似於SVN up,但是對刪除的文件不管用,恢復刪除文件用  git checkout -f 
10. 分支操作
查看分支:$ git branch
創建分支:$ git branch 分支名稱 (注意:請不要在服務端建立分支)
切換分支:$ git checkout 分支名稱
刪除分支:$ git branch -d 分支名稱
查看版本發展記錄:git show-branch  
git whatchanged 
git checkout -b tztv_2.2 origin/tztv_2.2
11. git push origin HEAD:refs/for/tztv_2.2
12. git status
13. git commit --amend 上一次提交時的comment
14.提交代碼到gerrit 
scp -p -P 29418 [email protected] :hooks/commit-msg .git/hooks/
注意,scp是在git clone後才需要做的,以後如果沒有再clone代碼到本地,不需要做 
git add 添加要上傳的文件
git commit . 注意點號表示當前文件夾下,回車後要求我們輸入此次代碼提交的log,自己按照動賓格式寫代碼修改的原因即可,wq保存退出
git push origin HEAD:refs/for/master  確認提交到gerrit上
在gerrit主頁上標紅的位置出現提交的代碼時,表示提交成功
15.Upload patch
如果剛纔提交的代碼有人提出了修改意見,我們在原有基礎上修改好之後,執行下面步驟,來提交patch: 
git add (modified files name)
git commit --amend 確認此log的id是否和剛纔的id一致
git push origin HEAD:refs/changes/changeID (在patch頁面標紅位置可以查到changeID)
16.git reset --hard
讓代碼回到初始就是改之前的版本--不保存修改
git reset 20b2d80e02eed1dd4a43d1c38f9319491c64b2e7 --hard
17.git stash save "version 1"  保存修改,然後回到HEAD
   git stash list 顯示所有保存的目錄
   git stash apply stash@{1}’就可以將你指定版本號爲stash@{1}的工作取出來
   git stash pop
   git stash clear 清空
18.git log --oneline --graph
19.停止追蹤一個文件:git rm --cached FILENAME
當我們需要刪除暫存區或分支上的文件, 同時工作區也不需要這個文件了, 可以使用git rm
當我們需要刪除暫存區或分支上的文件, 但本地又需要使用, 只是不希望這個文件被版本控制, 可以使用git rm --cached FILENAME
20.生成patch
git diff > 1.patch :這樣生成的patch只能應用於git apply
git format-patch -1 (git format-patch HEAD^):將一個commit生成patch
git am 0001-limit-log-function.patch:應用一個patch,自動生成commit
(使用git-am之前, 你要首先git am –abort 一次,來放棄掉以前的am信息,這樣纔可以進行一次全新的am。
不然會遇到這樣的錯誤。.git/rebase-apply still exists but mbox given.)
21.rebase
-sudo git rebase -i HEAD~2  (壓縮兩個commit,上面pick下面squash,把squash壓到pick)
-git rebase + branch/commit id/origin  (適用於branch之間)
把另外一個分支上的內容拖下來與本地合併,會生成新的commit,參考:http://blog.chinaunix.net/uid-27714502-id-3436696.html   
22.git pull --rebase   (適用於同一branch內)
適用於本地分支基於老的commit,遠端commit已經更新。然後重新把遠端的最近commit作爲此次commit的base           
23.
如果之前提交的代碼還沒有被merge,新的代碼又依賴於上一個patch,此時需要將之前patch上的代碼pull下來,使用如下命令: 

git pull ssh://ID@ip:port/<fullname of your project> refs/changes/changeID/patchID

24.

1)提交代碼     git config --global core.editor vim
git add .
git commit -a -s
git push origin HEAD:refs/for/r5p0
push完了會出現錯誤,說是沒有changeid,把錯誤信息裏面的changeid整個拷貝下,然後執行 git commit --amend,把剛纔的changeid粘貼進去,然後再用上面的push命令push
Change-Id: I2133919bb20b6c68a671be6c8d7baea5c4fb8915 要放在後面
2)打patch
git add .
git commit --amend -s
sudo git push origin HEAD:refs/changes/98427
3)rebase
sudo git rebase -i HEAD~2  (壓縮兩個commit,上面pick下面squash,把squash壓到pick)













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章