
封面
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 操作:
- 首先要進(jìn)行切換分支(切換分支前要保證自己分支的內(nèi)容都已經(jīng)提交了)
# 情況一:分支是本地分支(直接切換)
git branch snow
# 情況二:分支是遠(yuǎn)程分支(新建本地分支并與遠(yuǎn)程分支關(guān)聯(lián))
git checkout -b snow origin/snow
- 在 snow 分支上拉取最新代碼
git pull
- 切換回我自己的分支rain
git branch rain
- 執(zhí)行合并
git merge rain
- 處理代碼沖突
我這里比較喜歡使用 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ì) ?