git命令使用(必備系列)

頂級飲水機管理員發表於2021-06-24

git是一個分散式版本控制系統,得益於高效、協作和快速的專案程式碼管理特性幾乎每一個軟體開發團隊都在深度使用。本篇是對git命令的介紹,涵蓋了不低於95%的日常操作命令,對你有用話可以收藏一下哦。

gitcommd

一、初始化相關

初始化一個倉庫

git init myrepo

克隆一個倉庫到本地myrepo目錄

git clone git://github.com/linux/linux.git myrepo
git remote add origin git://github.com/linux/linux.git #指定(關聯)遠端倉庫地址,適用於從本地建立的倉庫

二、配置相關

檢視配置資訊

git config --list 
git config --list --global  #全域性的

配置.git檔案

git config -e  
git config -e --global 全域性的

配置全域性認證資訊,去除--global 為當前倉庫配置

git config --global user.name "user_git"
git config --global user.email  git@github.com
git config --global user.password "mypasswd"

三、常規操作相關

git中資料在工作區暫存區本地倉庫遠端倉庫 區域流轉,下面圖片可以比較清晰的呈現

unnamed (1)

任何時候檢視檔案git檔案流轉當前狀態

git status

新增檔案到暫存區

git add <file>
git add . #新增所有檔案(改動檔案)

從暫存區刪除檔案(新增了無用檔案)

git restore --staged  <file>
git reset <file>  #效果一樣

刪除或移動、重新命名檔案,並自動提交到暫存區。用於處理已提交到倉庫的檔案

git rm|mv <file>

提交修改到本地倉庫

git commit -m "change to..."
git commit -am "change to ..." #用於直接提交修改檔案,無法提交新增檔案

撤銷某次提交(會在分支上長生一次commit記錄)

git revert <commit>

檢視提交記錄

git log
git log --graph #圖形化檢視
git blame <file> #列表的方式檢視指定檔案修改歷史

檢視檔案修改或區別

git diff #暫存和工作區所有差別  
git diff <file>  #檢視指定檔案
git diff HEAD -- <file>  #檢視工作區和版本庫裡面最新版本的區別

反覆橫跳(版本回退)

git reset <commitid> #我們使用git log查詢到需要回退版本的commitid
git reset HEAD~1 #回退到上一個版本
git rest HEAD~n #回退到前n個版本

提交修改到遠端倉庫

git push  #提交有衝突時需要拉取遠端最新版本
git push orgin master #將本地master分支提交到遠端master分支
git push -u orgin master #提交併關聯(適用於從本地建立的倉庫)

拉取遠端倉庫最新版本

git pull  #拉取合併

git fetch #拉取不合並

git pull --rebase  #不會產生merge記錄,保持分支幹淨衛生
git add <conflict-file>  #新增解決的衝突的檔案
git rebase --continue  #解決衝突後繼續rebase

四、分支管理

檢視本地分支

git branch 

建立分支

git branch <branchName>

刪除分支

git branch -d <branchName>  #-D 強制刪除

切換分支

git checkout <branchName>
git checkout -b <branchName> #建立分支並切換

git switch <branchName>
git switch -c <branchName> #建立分支並切換

拉取遠端分支

git checkout -b dev(本地分支名稱) origin/develop(遠端分支名稱) #建立並切換
git fetch origin develop(develop為遠端倉庫的分支名 #建立

checkout回滾到某個commit id

git checkout <commitid>  #不會影響當前的工作區或分支(只讀狀態),修改不被儲存
git checkout master #回到當前工作區(分支)

checkout回滾某個檔案到commitid

git checkout <commit> <file> #會影響當前工作區檔案

五、分支操作--合併分支

快速模式,head指標的移動(fast-forward),合併dev到當前分支

971-9713493_fast-forward-merge-diagram
git merge dev #合併dev分支

普通模式(no ff),相當於head指標移動到新節點,保留合併歷史分支。

no-ff_new

git merge --no-ff -m "merge it" dev

六、標籤的管理

檢視標籤列表

git tag

檢視標籤資訊

git show v0.01
git show commit_id #檢視某次提交的資訊

打標

git tag v0.01

對某次commit打標

git tag v0.01 f45212545

git tag -a v0.01 -m "v0.01 release" f45212545 #包含文字說明

刪除標籤

git tag -d v0.01

將標籤推送到遠端,標籤預設只儲存到本地

git push origin <tagname>
 git push origin --tags #推送所有標籤

刪除遠端標籤

git tag -d v0.01
git push origin :refs/tags/v0.01  

七、其他

工作區暫存

git stash

檢視暫存的工作區

git stash list

恢復暫存工作區,stash內容不刪除

git stash apply 
git stash apply <stash@{n}> #恢復到執行工作區

git stash drop #刪除stash內容

恢復暫存工作區,stash內容自動刪除

git stash pop 
git stash pop <stash@{n}> 

複製提交到當前分支,減少重複修改

git cherry-pick <commit>

同屬必備系列文章:

vim命令:https://juejin.cn/post/6966772543919226887


文章有不足的地方歡迎在評論區指出。

歡迎收藏、點贊、提問。關注頂級飲水機管理員,除了管燒熱水,有時還做點別的。

相關文章