Linux應用程序開發筆記:git常用指令(持續更新中......)

倉庫創建

服務器端:

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 命令即可

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