1. 導出最後一次提交修改過的文件 我一直在使用這個命令定期進行發送給其他人進行審查/整合。這條命令將把近期提交的修改過的文件導出到一個zip文件。1git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)2. 導出兩次提交之....
1. 導出最後一次提交修改過的文件
我一直在使用這個命令定期進行發送給其他人進行審查/整合。這條命令將把近期提交的修改過的文件導出到一個zip文件。
1 |
git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)
|
2. 導出兩次提交之間修改過的文件
同樣,如果你需要導出兩次提交之間修改過的文件,你可以用這一個。
1 |
git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)
|
3. 克隆一個特定的遠程分支
如果你想從遠程倉庫克隆特定的一個分支,這條命令對你很有用:
1 2 3 |
git init
git remote add -t BRANCH_NAME_HERE -f origin REMOTE_REPO_URL_PATH_HERE
git checkout BRANCH_NAME_HERE
|
4. 從無關的本地倉庫應用補丁
如果您需要申請從提交的一些其他不相關的創庫到本地存儲庫,這裡是一個快捷的方式:
1 |
git --git-dir=PATH_TO_OTHER_REPOSITORY_HERE/.git format-patch -k -1 --stdout COMMIT_HASH_ID_HERE| git am -3 -k
|
5. 檢查您的分支變化是是否其他分支的一部分
cherry 命令可以讓你檢查你的分支的變化是否存在於其他一些分支之中。它會顯示在當前分支相對於給定的分支的修改,用+或-標誌提示提交合併與否。+表示不存在,而-表示存在於給定的分支。
1 2 3 |
git cherry -v OTHER_BRANCH_NAME_HERE
#For example: to check with master branch
git cherry -v master
|
6. 啟動一個無歷史的新分支
有時候,你需要啟動一個新的分支,同時想摒棄歷史信息,例如,你想將代碼放在公共領域(開源)又不想共用歷史信息。
1 |
git checkout --orphan NEW_BRANCH_NAME_HERE
|
7. 在不切換分支的情況下從其它分支檢出文件
下麵的命令是從其他分支獲取文件,而不用切換分支。
1 |
git checkout BRANCH_NAME_HERE -- PATH_TO_FILE_IN_BRANCH_HERE
|
8. 忽略跟蹤文件的修改
如果你工作在一個團隊,他們都是工作在同一個分支,你需要頻繁的讀取/合併文件。但是有時複位了你環境的特定配置,你必須在合併後每一次都再改一下。使用這個命令,你可以忽略更改特定的文件:
1 |
git update-index --assume-unchanged PATH_TO_FILE_HERE
|
9. 檢查提交的修改是否發佈版本的一部分
這個 name-rev 命令可以告訴你提交相對於最新發佈版本的位置。利用這一點,你可以檢查你的變化是否發佈版本的一部分。
1 |
git name-rev --name-only COMMIT_HASH_HERE
|
10. 使用 pull rebase 操作替代 merge
如果你工作的團隊正工作在同一個分支,那麼你所要做的獲取/合併或經常拉取。分支合併的 git 記錄與合併提交時提示功能分支被併入主幹。但在多個團隊成員工作的同一分支的情況下,經常合併導致在日誌中多個合併的消息引起混亂。所以你可以使用 pull rebase,以保持歷史信息清除了無用合併的消息。
1 |
git config branch.BRANCH_NAME_HERE.rebase true
|
此外,您可以配置一個特定的分支總是衍合:
1 |
git pull --rebase
|