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

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

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

