關於repo的一些命令
一、怎樣在代碼文件夾下全部git庫都創建分支? repo start --all <分支名>
二、怎樣刪除代碼文件夾下全部git庫的分支? repo abandon <分支名>git
*1和2其實就是相反的動做app
三、怎樣知道代碼文件夾下都改動了那些? repo diff
四、怎樣把個人提交上傳的gerrit上? repo uploadorm
若是出現文件就把要提交的部分前面的#去掉同步
五、不想同步全部代碼,只想同步一部分? repo sync <project1> <project2>……
六、repo upload之後後悔了,須要再修改一些?it
(1)在原有分支上修改文件
(2)git commit --amend
(3)repo upload --replace <工程名>
(4)出現文件之後去掉第1行的#,中括號裏面填上 change-idform
關於Git的一些命令
一、repo init的時候我沒有改用戶名和email,如今發現不對了怎麼辦?email
git config --global user.name "<your name>" ----修改用戶名
git config --global user.email "<your email>" ----修改email
git config --list ----查看修改打包
二、想查看之前都有哪些提交? git log
三、想查看之前的兩次提交有什麼區別? git diff <log上顯示的哈希值1> <log上顯示的哈希值2>
四、想查看之前代碼,可是如今修改的不能動 git checkout <哈希值>
五、想回到之前,如今修改的都不要了 git reset --hard <哈希值>
六、想把本身的修改提交到本地的git庫裏?file
git add <文件名>
git commit -m "<註釋>"方法
七、提交之後後悔了,文件仍是要修改後的,只是不想要此次提交? git reset HEAD~1
八、提交之後發現少add了一個文件?
git add <忘記的文件>
git commit --amend
九、git add了不少文件,發現其中一個不想提交? git reset HEAD <file>
十、只想同步代碼裏的一個文件? git pull <file>
十一、只刪除中間的一個commit對應的修改,其餘不變 git revert <對應的哈希值>
關於從A代碼裏面打包,放到B代碼的問題
兩種方法:
1)在A代碼裏面,$git diff <起始哈希值> <終點哈希值> > A.patch
在B代碼裏面,$git apply A.patch
有衝突解決衝突。
打開對應修改的文件發現就已經被修改了。
--這個方法的缺點是對應A代碼的commit是不會加到B代碼上的。
2)在A代碼裏面,$git format-patch -<x> <分支名> -o <路徑>
-<x>,x填一個數字,表示從倒數第幾個commit開始
運行完成就能在<路徑>下看見<x>個patch,對應一個commit一個patch 在B代碼裏面,$git am <路徑>/*.patch,就把全部的patch加到B代碼裏面
了。 --這個方法能夠把A代碼裏面對應的commit都加到B代碼上。