柚子快報邀請碼778899分享:Git常用命令總結(jié)
柚子快報邀請碼778899分享:Git常用命令總結(jié)
目錄
1.創(chuàng)建新建分支
2.強(qiáng)制拉去代碼
3.合并相鄰提交,保證只有一個commit信息
4.本地回退
5.查看git修改列表
6.提交代碼
7.切換新分支并從服務(wù)端拉取最新
8.git cherry-pick合并代碼使用
9.刪除本地和遠(yuǎn)程分支
10.查看文件的修改
11.查看某個作者提交的詳情
12.查看單個文件修改信息
13.拉取遠(yuǎn)程分支
14.git客戶端賬戶信息處理
15.git提交增加多行注釋
16.提交代碼標(biāo)準(zhǔn)動作
17.linux下安裝git,生成并查看pk
18.單獨(dú)拉取倉庫的某一個分支
19.子模塊管理
20.git本地目錄文件刪除
21.查看代碼倉庫地址
22.回退某個文件
23.git命令思維導(dǎo)圖總結(jié)
1.創(chuàng)建新建分支
-以創(chuàng)建新分支test為例 方法1: (1)git服務(wù)器上拉取分支test (2)git checkout -b stest (3)git pull origin test:test (4)git push origin HEAD:refs/for/test 方法2: (1)git服務(wù)器上拉取分支test (2)本地執(zhí)行 git pull -r (3)git branch -a | grep test //---> remotes/origin/test (4)git checkout -b test remotes/origin/test
2.強(qiáng)制拉去代碼
(1)git reset --hard HEAD^ (2)git pull --rebase 常識: git pull = git fetch + git merge FETCH_HEAD? git pull --rebase = ?git fetch + git rebase FETCH_HEAD?
3.合并相鄰提交,保證只有一個commit信息
git commit --amend ::? ? ? ctrl + O ?? ? ? enter ? ? ctrl + x git commit --amend --no-edit
4.本地回退
硬回退: git reset --hard HEAD~ 軟回退: git reset --soft HEAD~
5.查看git修改列表
git log ?--name-status
6.提交代碼
git add -u git commit -m "alter msg"
// 代碼review提交 git push origin HEAD:refs/for/test
// 不代碼review,提交后直接合入
git?push?origin?feature_PB-18985:refs/heads/feature_PB-18985
7.切換新分支并從服務(wù)端拉取最新
git branch -a | grep test ?例如:檢索到分支 remotes/origin/release/test git checkout -b test ?remotes/origin/release/test
8.git cherry-pick合并代碼使用
//將別的分支的某一次提交合并到當(dāng)前分支上 git cherry-pick a98ea4c2bf2cab5afa2b50254354498412b22222 //若沖突,修改沖突,然后加入 git add . //繼續(xù)cherry-pick git cherry-pick --continue // 多個連續(xù)commit合并,commit_id到commit_idn之間,包括兩端 git cherry-pick commit_id..commit_idn // commit_id到commit_idn之間,非閉包 git cherry-pick (commit_id..commit_idn] // 挑選多個commit: git cherry-pick commit_id commit_idx commit_idy
9.刪除本地和遠(yuǎn)程分支
例如刪除dev分支 // 刪除本地分支 git checkout master git branch -d dev // 刪除遠(yuǎn)程分支 git push origin [空格][冒號][分支名字] git push origin :dev
10.查看文件的修改
// 查看某個文件的各行最后修改時間 git blame ?interface/test/guide/test.cpp // 查看某個文件的提交歷史 git log --pretty=oneline ?interface/test/guide/test.cpp // 查看一次commit_id對應(yīng)的詳細(xì)修改 git show commit_id
//粗略查看文件提交記錄 git log ?some.cpp //快速查看文件有了哪些改動 git log --stat //在一行內(nèi)顯示提交的歷史信息 git log --pretty=oneline? //查看提交文件的不同之處,-2是說只顯示最近兩次的 git log -p -2 ?some.cpp? 最常用的是git log -p,既可以看到提交記錄,也可以看到提交對應(yīng)文件修改
11.查看某個作者提交的詳情
git log --author=liudehua
12.查看單個文件修改信息
// 根據(jù)文件中的具體內(nèi)容確定文件修改人,例如查看代碼 fun_come(123, "llsTest");的修改人 git blame ?/home/tiger/work/hello.cpp | grep " fun_come(123, \"llsTest\");" // 查看某次提交的詳細(xì)修改 git show 6c3790f2a // 查看具體文件的提交記錄 git log --pretty=oneline /home/tiger/work/hello.cpp
13.拉取遠(yuǎn)程分支
在git pull -r 不能拉取遠(yuǎn)程分支時,可以使用如下命令拉取 例如拉取遠(yuǎn)程的分支:test ? ? git remote set-branches origin test ? ? git fetch origin test
14.git客戶端賬戶信息處理
//查看目前git信息,包括用戶名,密碼等 git config --list //查看git用戶名 git config user.name? //查看git郵箱 git config user.email? //修改git用戶名 git config --global user.name "liudehua" //修改git郵箱 git config --global user.email "liudehua@***" //為當(dāng)前git賬戶生成公鑰 ssh-keygen -t rsa?
15.git提交增加多行注釋
git commit -m " 1.說明一 2.說明二 3.... "
16.提交代碼標(biāo)準(zhǔn)動作
(1)git stash (2)git pull -r (3)git stash pop (4)git commit ?-m ?"***" (5)git push ... ? ?
17.linux下安裝git,生成并查看pk
sudo apt install git ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub
18.單獨(dú)拉取倉庫的某一個分支
git clone -b test-UI
19.子模塊管理
19.1.增加子模塊 git submodule add https://gitlab.com/joernchen/xxeserve.git
子模塊管理對應(yīng)的三個重要配置 .gitmodules: .git/config: .git/modules:每個子模塊的.git倉庫的副本
注意: Git submodule的內(nèi)部維護(hù)是相當(dāng)復(fù)雜的,因此不要手工修改Git子模塊的配置!如果你想移動、刪除或以其他方式操作子模塊,請不要手動嘗試。要么使用適當(dāng)?shù)腉it命令, 相關(guān)Git桌面GUI,它們會處理這些細(xì)節(jié)。
19.2.提交 在母倉庫正常提交即可
19.3.代碼拉取 方法一: git clone 拉取母庫 git submodule update --init --recursive
方法二: git clone ***url*** ?--recurse-submodules
19.4.查看子模塊版本(類似于tag) git submodule status
19.5.子模塊切換tag git checkout **tag**
19.6.更新子模塊 git submodule update ***sub_module***
19.7遞歸更新源碼
git submodule update --init --recursive
19.8 git submodule update --init 和 git submodule update --remote
//--init則會拉取我們遠(yuǎn)程倉庫保存的子模塊commitId對應(yīng)的版本 //--remote拉取子模塊對應(yīng)分支的最新commit版本, git submodule update --init --recursive git submodule update --remote --recursive
實(shí)戰(zhàn)舉例:
1. 創(chuàng)建子模塊 git submodule add ?--force [git path] common_submodule/pro1
2.卸載子模塊 emuproj/emuproj/common_submodule/pro1指的是.gitmodules中的path // 卸載 git submodule deinit -f ?emuproj/emuproj/common_submodule/pro1 // 刪除目錄 git rm --force ? emuproj/emuproj/common_submodule/pro1
3.克隆代碼 (1)方法一 git clone [git path] ?--recurse-submodules
(2)方法二 git clone [git path]? git submodule init git submodule update
gitmodules操作參考: https://www.jianshu.com/p/1aabba459cbe https://zhuanlan.zhihu.com/p/614114699
20.git本地目錄文件刪除
git rm -rf XXXXX
21.查看代碼倉庫地址
git remote show origin ?? ?
22.回退某個文件
//查看提交commit id,得到XXXXX
git log? git reset ?XXXXX ?[file-name]
23.git命令思維導(dǎo)圖總結(jié)
柚子快報邀請碼778899分享:Git常用命令總結(jié)
參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。