目錄
倉庫創建
服務器端:
sudo git init --bare mcuboot.git
sudo chown -R git:git mcuboot.git
本地電腦:
git clone --recursive [email protected]:/srv/git/mcuboot.git
cd mcuboot
git remote add mcuboot https://github.com/JuulLabs-OSS/mcuboot.git
git pull mcuboot master
git push origin master
branch
創建新的本地分支:git checkout -b #分支名稱#
刪除本地分支:git branch -D #分支名稱#
刪除遠程分支:git push origin -d branchA #分支名稱#
切換本地分支:git checkout #分支名稱#
查看本地分支:git branch
查看遠程分支:git branch -r
fetch
獲取遠程指定分支:git fetch origin #分支名稱#
tag
創建新的本地標籤:git tag -a #版本# -m #說明#
推送本地標籤到遠端:git push origin #標籤名稱#
查看遠程標籤:git ls-remote --tags origin
刪除本地標籤:git tag -d #標籤名稱#
刪除遠程標籤:git push origin :refs/tags/ #標籤名稱#
切換到某個標籤:git checkout -b branch_name tag_name
submodule create
git clone --recursive [repository] 遞歸的方式克隆整個項目
git submodule add [repository] [path] 添加子模塊
git submodule init 初始化子模塊
git submodule update 更新子模塊
git submodule foreach git pull 拉取所有子模塊
git submodule update --init --recursive 自動拉取子模塊
submodule delete
1.刪除 .gitsubmodule中對應submodule的條目
2.刪除 .git/config 中對應submodule的條目
3.執行 git rm --cached {submodule_path}。注意,路徑不要加後面的“/”。例如:你的submodule保存在 supports/libs/websocket/ 目錄。執行命令爲:git rm --cached supports/libs/websocket
submodule update
1.更新 .gitsubmodule中對應submodule的條目URL
2.更新 .git/config 中對應submodule的條目的URL
3.執行 git submodule sync
git push/pull error
1、httpBuffer加大:
git config --global http.postBuffer 524288000
2、壓縮配置
git config --global core.compression -1
3、修改配置文件
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
生成patch
git format-patch [commit id] ——某次提交以後的所有patch(不包含該commit)
git format-patch 365a…4e16 ——某兩次提交之間的所有patch(包含兩個commit)
git format-patch –n 07fe ——某次提交(含)之前的幾次提交patch
git format-patch -1 07fe ——單次提交patch
打入patch
git apply --stat newpatch.patch ——檢查patch文件
git apply --check newpatch.patch ——檢查能否應用成功
git am -s newpatch.patch ——打補丁(使用-s或–signoff選項,可以commit信息中加入Signed-off-by信息)
git am newpath.patch ——將newpath.patch按照先後順序打上
git am --abort ——當git am失敗時,用以將已經在am過程中打上的patch廢棄掉(比如有三個patch,打到第三個patch時有衝突,那麼這條命令會把打上的前兩個patch丟棄掉,返回沒有打patch的狀態)
git am --continue ——當git am失敗,解決完衝突後,這條命令會接着打patch
git am --resolved ——同continue
打入patch錯誤處理方法
git:patch does not apply
說明當前patch有衝突,不能合併,此時使用 git apply --reject <patch_name> 指令,強制把不衝突的文件先合併,有衝突的會生成.rej文件 ,在根據這個文件中的修改去手動執行即可 ,解決完衝突要把.rej文件刪除,在執行 git add . ==> git am --continue 命令即可