Git 常用命令及應(yīng)用這一篇就夠了(新手向)

封面

1. git 常用命令

1.1 常用命令

# 初始化git
git init 

# 克隆項(xiàng)目
git clone [url] 

# 顯示文件狀態(tài)
git status -s 

# 添加文件到暫存區(qū)
git add . #添加所有文件到暫存區(qū)
git add [文件名] #添加指定文件到暫存區(qū)

# 提交暫存區(qū)到倉庫區(qū)
git commit -m [提交信息] 

# 拉取遠(yuǎn)程倉庫的變化,更新本地分支
git pull 

# 推送到遠(yuǎn)程倉庫
git push 
git push [遠(yuǎn)程主機(jī)名] [本地分支名]

# 更新所有的遠(yuǎn)程倉庫信息
git fetch --all 

# 合并指定分支到當(dāng)前分支
git merge [分支名] 

# 分支相關(guān)
git branch # 列出所有本地分支
git checkout [分支名] # 切換到指定分支
git checkout -b [本地分支名] origin/[遠(yuǎn)程分支名] # 拉取遠(yuǎn)程分支

#查看項(xiàng)目中g(shù)it配置
git config --list

# 配置全局信息
git config --global user.name "[name]"
git config --global user.email "[email address]"

# 項(xiàng)目中配置
git config user.name "[name]"
git config user.email "[email address]"

1.2 git remote

管理遠(yuǎn)程倉庫

#查看遠(yuǎn)程倉庫
git remote 

#查看關(guān)聯(lián)的遠(yuǎn)程倉庫的詳細(xì)信息
git remote -v 

#添加遠(yuǎn)程倉庫的關(guān)聯(lián)
git remote add origin [遠(yuǎn)程倉庫地址] 

#刪除遠(yuǎn)程倉庫的關(guān)聯(lián)
git remote remove [遠(yuǎn)程倉庫名稱] 

#更新遠(yuǎn)程倉庫的分支
git remote update origin --prune 

1.3 git rebase

rebase操作可以把本地未push的分叉提交歷史整理成直線;

rebase的目的是使得我們?cè)诓榭礆v史提交的變化時(shí)更容易,因?yàn)榉植娴奶峤恍枰綄?duì)比。

個(gè)人感覺非特定情況,還是不建議使用

2. Git的常見應(yīng)用

2.1 本地項(xiàng)目上傳至多個(gè)遠(yuǎn)程庫

# 添加關(guān)聯(lián)遠(yuǎn)程庫(這里以github和碼云為例,大家替換掉倉庫地址即可)
git remote add gitee [url]
git remote add gitee git@gitee.com:LuckRain/Knowledge-Sharing.git
git remote add github git@github.com:LuckRain7/Knowledge-Sharing.git

# 推送時(shí)分別將master分支推送到關(guān)聯(lián)遠(yuǎn)程庫
git push gitee master
git push github master

# 刪除關(guān)聯(lián)遠(yuǎn)程庫
git remote rm [origin] 

2.2 Git 遠(yuǎn)程分支強(qiáng)制覆蓋本地分支

需在需要覆蓋的分支上進(jìn)行一下操作

# 更新所有的遠(yuǎn)程倉庫信息
git fetch --all  

# 強(qiáng)制重置為 origin/master(可以換成你需要的遠(yuǎn)程分支) 遠(yuǎn)程分支
git reset --hard [origin/master] 

# 拉取最新代碼
git pull

2.3 Git 配置忽略規(guī)則(.gitignore)不生效解決方案

清除緩存 重新提交

# 清除緩存
git rm -r --cached .

# 將所有文件添加到緩存區(qū)
git add . 

# 添加提交信息
git commit -m 'update .gitignore' 

# 強(qiáng)制覆蓋 以遠(yuǎn)程分支 rain 為例
git push

2.4 Git 強(qiáng)制提交本地分支覆蓋遠(yuǎn)程分支

# 將所有文件添加到緩存區(qū)
git add .

# 添加提交信息
git commit -m '更新信息'

# 強(qiáng)制覆蓋 以遠(yuǎn)程分支 rain 為例
git push origin rain --force

2.5 分支合并

2.5.1 情景:

我現(xiàn)在的分支是 rain

我要把別人的分支 snow 合并到我的分支上來

2.5.2 操作:

  1. 首先要進(jìn)行切換分支(切換分支前要保證自己分支的內(nèi)容都已經(jīng)提交了)
# 情況一:分支是本地分支(直接切換)
git branch snow  

# 情況二:分支是遠(yuǎn)程分支(新建本地分支并與遠(yuǎn)程分支關(guān)聯(lián))
git checkout -b snow origin/snow
  1. 在 snow 分支上拉取最新代碼
git pull
  1. 切換回我自己的分支rain
git branch rain  
  1. 執(zhí)行合并
git merge rain 
  1. 處理代碼沖突

我這里比較喜歡使用 VS Code 的可視化界面解決代碼沖突

2.6 版本回溯

#版本回退到上一個(gè)版本
git reset --hard HEAD^ 

# 回溯到指定版本
git log #查看git歷史版本信息,并找到指定版本的commit id
git reset --hard [commitId]  # 進(jìn)行回溯
commitId.png

2.7 同時(shí)配置gitee&github(多平臺(tái))ssh

2.7.1. 本地創(chuàng)建多個(gè)ssh

# 進(jìn)入.ssh目錄
cd ~/.ssh

# 生成ssh
ssh-keygen -t rsa -C "xxxx@email.com" -f "rain_github" # 后續(xù)綁定github平臺(tái)
ssg-keygen -t rsa -C "xxxx@email.com" -f "rain_gitee"  # 后續(xù)綁定gitee平臺(tái)
ssg-keygen -t rsa -C "xxxx@email.com" -f "coding_id_rsa"  # 后續(xù)綁定coding平臺(tái)

會(huì)在本地生成如下文件

創(chuàng)建多個(gè)ssh

2.7.2. 在各個(gè)平臺(tái)進(jìn)行ssh綁定

2.7.2.1 github平臺(tái)操作
github.png
githubaddssh.png
2.7.2.2 gitee 平臺(tái)操作
gitee.png

2.7.3. 解決ssh沖突配置

C:\Users\ZHCZ\.ssh 文件夾中新建 config 文件

進(jìn)行如下配置

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile C:\Users\ZHCZ\.ssh\rain_gitee

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile C:\Users\ZHCZ\.ssh\rain_github

# coding
Host e.coding.net
HostName e.coding.net
PreferredAuthentications publickey
IdentityFile C:\Users\ZHCZ\.ssh\coding_id_rsa
config.png

2.7.4. 測(cè)試

ssh -T git@gitee.com
ssh -T git@github.com 

返回success則表示設(shè)置成功

推薦閱讀

您的關(guān)注是莫大的鼓勵(lì) ?
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容