Git開發(fā)中的常用指令及其使用場景詳解
一、Git安裝
Git 是一個開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目。
官網(wǎng)下載地址:https://git-scm.com/downloads
二、配置Git工具
2.1 用戶信息配置
對所有本地倉庫的用戶信息進行配置
1、對你的commit操作設(shè)置關(guān)聯(lián)的用戶名
git config --global user.name "[name]"
修改用戶名
git config --global --replace-all user.name "[name]"
2、對你的commit操作設(shè)置關(guān)聯(lián)的郵箱地址
git config --global user.email "[email address]"
修改郵箱地址
git config --global --replace-all uesr.email "[email address]"
3、啟用有幫助的彩色命令行輸出
git config --global color.ui auto
2.2 查看配置
查看用戶名:
git config user.name
查看密碼:
git config user.password
查看郵箱:
git config user.email
查看配置信息:
git config --list
三、初始化倉庫
3.1 創(chuàng)建倉庫
1、創(chuàng)建文件夾
mkdir my-project
2、進入文件夾
cd my-project
3、git初始化
git init
1、2、3 步是基于沒有倉庫時的操作,如果倉庫存在1、2、3步可替換為git clone 遠程倉庫地址
進入文件夾
cd my-project
4、創(chuàng)建readme文件
touch README.md
5、添加readme文件到暫存狀態(tài)
git add README.md
添加全部
git add .
6、把暫存狀態(tài)的文件提交到本地備注為"first commit"
git commit -m "first commit"
7、遠端倉庫建立連接 名稱origin對應(yīng)遠端倉庫地址
git remote add origin https://gitee.com/wudixiaofei/my-project.git
8、推送代碼至代碼倉庫 首次提交添加 -u
git push -u origin "master"
提交代碼到對應(yīng)分支
git push origin branch_name
如果有多個倉庫需要推送,如gitee、github
遠程地址A:'gitee/my-project.git' //設(shè)為'originA' 遠程地址B:'github/my-project.git' //設(shè)為'originB' $ git remote add originA giteeurl $ git remote add originB githuburl 查看本地對應(yīng)的遠程倉庫 $ git remote -v 操作追加遠程推送B $ git push originA master:master $ git push originB master:master 刪除與遠端建立的連接 $ git remote remove "連接名字"
四、常用命令
4.1 git clone拉取遠端倉庫
拉取遠端倉庫 git clone 遠程倉庫地址
代碼拉取下來后,就需要有分支的概念
4.2 git分支操作
查看分支
星號(*)表示當前所在分支
查看遠端分支 git branch -r 查看本地分支 git branch 查看所有分支 git branch -a
分支操作
創(chuàng)建新分支 下級用/ git branch dev git branch dev/featrue 修改本地分支名稱 git branch -m oldName newName 檢出分支、切換分支到dev git checkout dev 本地分支推送至遠程分支 git push origin 本地分支名:遠程分支名 > git push origin develop:develop 刪除本地分支 git branch -D branch_name 刪除遠程分支 git push origin --delete branch_name > git push origin --delete develop
4.3 撤回操作
撤回刪錯的分支
1、找到刪除branch的 hash 值 git reflog 2、創(chuàng)建對應(yīng)branch git checkout -b new_branch_name hash
撤回提交
HEAD:它是一個指向你正在工作中的本地分支的指針,可以將 HEAD 想象為當前分支的別名。
HEAD^ 的意思是上一個版本,也可以寫成HEAD~1如果你進行了2次commit,想都撤回,可以使用HEAD~2或者HEAD^^
reset 用于本地的commit操作撤回

1、代碼恢復(fù)到上一次提交
git reset --mixed HEAD^
參數(shù):
--mixed 默認參數(shù)
意思是:不刪除工作空間改動代碼,撤銷commit,并且撤銷git add . 操作。
--soft
意思是:不刪除工作空間改動代碼,撤銷commit,不撤銷git add 。
--hard
意思是:刪除工作空間改動代碼,撤銷commit,撤銷git add . 操作。
2、如果只是修改注釋
git commit --amend
會進入默認vim編輯器,修改注釋完畢后保存就好了
revert 用于遠程push操作的撤回
因為是遠程,revert是會有新紀錄C2’此時C2’ 的狀態(tài)與 C1 是相同的。

git revert HEAD^
4.3 拉取代碼操作
拉取對應(yīng)分支代碼 git pull origin branch_name
4.4 貯存操作
用于暫時保存沒有提交的工作。運行該命令后,所有沒有commit的代碼,都會暫時從工作區(qū)移除,回到上次commit 時的狀態(tài)。
1、沒有被 add 過的文件不會被貯藏
2、git stash -u 可以把沒有被add的文件也被貯藏
(–include-untracked)
SourceTree里的貯藏
1、添加貯藏
git stash save "貯藏備注"
2、查看貯藏列表
git stash list
3、取出指定內(nèi)容
git stash apply stash@{0}
五、使用場景
5.1 克隆倉庫
小白入職第一天:
1、安配配置git
2、拿到分配的賬號登錄公司代碼倉庫如gitlab、gitee、coding
3、賬號的安全設(shè)置處綁定公鑰
4、$ git clone 對應(yīng)倉庫地址
5、大佬安排看看代碼,熟悉一下
5.2 檢出分支
場景1:小白進了一家私企沒幾天就來了一個工期3天的新需求,準備要大展身手。
于是,小白checkout出了公司的dev分支,開始大干一番$ git checkout dev
5.3 提交代碼
2天過去了,產(chǎn)品經(jīng)理問,小白啊,怎么沒有看見你的近兩天的代碼提交呀?還沒開始嗎?
小白:原來沒寫好也要提交代碼給上級看,那我馬上提交。答到:『噢噢,寫的差不多了,馬上提交』
$ git add .
$ git commit -m "新功能"
$ git push origin 本地分支名:遠程分支名
大佬:我剛補的bug合并代碼發(fā)版了,咦,怎么起不來服務(wù)了,一看代碼提交,小白你提交的代碼有問題,影響到主業(yè)務(wù)了。
小白:啊(慌了)!
大佬:如果你需要開發(fā)新功能,要把當天的代碼提交的話,你就在feature新建一個功能就行,測試好我再合并發(fā)版。大佬耐心講到我司規(guī)范:
–master 是主分支,一般是保護分支,管理員才能操作
–dev 是開發(fā)分支,開發(fā)先拉這個分支
–feature 是功能模塊,如:
- ----feature/login (登錄功能)
- ----feature/用戶導(dǎo)入 (導(dǎo)入功能)
新增的功能加就行: 『feature/功能名稱』
–hotfix 修補bug模塊,如:
- ----hotfix/login (修補登錄功能)
- ----hotfix/導(dǎo)入 (修補導(dǎo)入功能)
–refactor 重構(gòu)模塊
小白趕忙撤回提交:
$ git log 查看提交日志
找到自己提交的hash,例如:(2c479a5)
$ git revert ${commit hash} ...${commit hash}
revert后那次提交的代碼就會被撤回,日志的hash顯示為(c18fad1ba),但是我辛辛苦苦寫的代碼咋就不見了。
于是,創(chuàng)建并切換分支feature/我的功能
$ git checkout -b feature/我的功能
該分支是從當前分支上檢出的,所以所有文件內(nèi)容都和當前分支一模一樣。再revert一遍即可
$ git revert c18fad1ba
可以看見,代碼都回來了。
5.4 協(xié)作問題
場景2 :小白開啟了新分支完成功能后準備合并到主分支。
$ git diff dev feature/我的功能
使用diff查看分支差異,發(fā)現(xiàn)和大佬提交的代碼同時修改了幾個文件。
解決沖突(合并、變基)
<<<<<<< =======, >>>>>>>
merge
當前分支在主分支,如master
$ git merge 目標分支--只保留單條分支記錄--no-ff--關(guān)閉fast-forward方式,可以查看到分支狀態(tài)。--squash– 需要進行一次額外的commit來總結(jié)最終的合并。
如果有沖突文件,在這一步處理完
$ git add .– 添加改動$ git commit -m "merge"– 本地提交$ git push origin feature/我的功能:master– 推送到master
rebase
當前分支在開發(fā)分支,如feature/我的功能
$ git rebase master --rebase操作
如果有沖突文件,在這一步處理完
$ git add .--添加改動$ git rebase --continue--繼續(xù)rebase--abort--放棄合并,回到操作前的樣子。
處理完所有沖突后,提示
Successfully rebased and updated refs/heads/feature/我的功能
$ git push origin feature/我的功能:master--推送到master
以上就是Git開發(fā)中的常用指令及其使用場景詳解的詳細內(nèi)容,更多關(guān)于Git常用指令的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
IDEA/WebStorm/Pycharm鼠標滾輪ctrl+滾輪-調(diào)節(jié)縮放字體大小
很多朋友不清楚IDEA/WebStorm/Pycharm鼠標滾輪ctrl+滾輪-調(diào)節(jié)縮放字體大小的,下面我以idea開發(fā)工具為例給大家通過截圖一步步展示操作方法,需要的朋友可以參考下2021-05-05
Windows下Git報錯:touch無法識別的原因分析與7種解決方案
本文主要討論了在Windows系統(tǒng)Shell(PowerShell/CMD)中使用Unix命令 touch時遇到的問題,并詳細分析了根本問題產(chǎn)生原因,并提供了七種解決辦法,需要的朋友可以參考下2026-05-05
基于HTTP協(xié)議的一些實時數(shù)據(jù)獲取技術(shù)詳解
HTTP 協(xié)議是一個標準,定義了web客戶端如何與服務(wù)器對話,以及數(shù)據(jù)如何從服務(wù)器傳回客戶端,下面這篇文章主要給大家介紹了關(guān)于基于HTTP協(xié)議的一些實時數(shù)據(jù)獲取技術(shù)的相關(guān)資料,需要的朋友可以參考下2018-07-07
分享最新Sublime Text4 Build 4107注冊碼(密鑰)漢化及完美永久破解方法
分享一個適用最新Sublime Text4 Build 4107注冊碼(密鑰)及Sublime Text 4完美永久破解方法,需要的朋友可以參考下2021-05-05
Git撤回已經(jīng)提交(甚至已push)的代碼,但把改動留在本地的解決
這篇文章主要介紹了Git撤回已經(jīng)提交(甚至已push)的代碼,但把改動留在本地的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-05-05
i++循環(huán)與i-–循環(huán)的執(zhí)行效率(遞增與遞減效率)
i++循環(huán)與i-–循環(huán)的執(zhí)行效率(遞增與遞減效率),需要的朋友可以參考下。2011-01-01

