Git 版本控制工具 (最全命令行總結(jié))

一 :Git 簡(jiǎn)介

1、Git 是什么

Git 是分布式版本控制系統(tǒng),用于開發(fā)時(shí)版本控制

2、Git 與 SVN 的區(qū)別

SVN 是集中式版本控制,有一個(gè)中央服務(wù)器的概念,代碼放置于中央服務(wù)器。程序員開發(fā)時(shí)需要將代碼拉取到個(gè)人電腦,開發(fā)結(jié)束推送到中央服務(wù)器。
缺點(diǎn)是,必須聯(lián)網(wǎng)操作,對(duì)開發(fā)環(huán)境帶寬要求高。
Git 是分布式版本控制系統(tǒng),程序員的電腦是一個(gè)完整的版本庫。多人開發(fā)時(shí)可以互相推送自己的改動(dòng),完成整個(gè)系統(tǒng)的研發(fā)。
優(yōu)點(diǎn)是,無需聯(lián)網(wǎng)、代碼安全性高、分支管理功能完善

二 : Git 的安裝

1、windom 安裝Git

安裝簡(jiǎn)單,請(qǐng)查詢相關(guān)資料

查看git 系統(tǒng)配置

# 查看所有配置
git config -l
# 查看系統(tǒng)配置
git config --system --list
#查看當(dāng)前用戶(global)配置
git config --global  --list

Git配置信息.png

手動(dòng)配置如下

$ git config --global user.name "wangch"
$ git config --global user.email "995016129@qq.com"

配置信息就是對(duì)應(yīng)你電腦的配置文件
1)、Git\etc\gitconfig :Git 安裝目錄下的 gitconfig --system 系統(tǒng)級(jí)
2)、C:\Users\Administrator\ .gitconfig 只適用于當(dāng)前登錄用戶的配置 --global 全局

2、Linux 安裝Git

# 安裝
yum -y install git
# 查看Git 版本
git --version

三 :Git 基本理論

Git本地有三個(gè)工作區(qū)域:工作目錄(Working Directory)、暫存區(qū)(Stage/Index)、資源庫(Repository或Git Directory)。如果在加上遠(yuǎn)程的git倉(cāng)庫(Remote Directory)就可以分為四個(gè)工作區(qū)域。文件在這四個(gè)區(qū)域之間的轉(zhuǎn)換關(guān)系如下:


來源于狂神說.png

Workspace:工作區(qū),就是你平時(shí)存放項(xiàng)目代碼的地方

Index / Stage:暫存區(qū),用于臨時(shí)存放你的改動(dòng),事實(shí)上它只是一個(gè)文件,保存即將提交到文件列表信息

Repository:倉(cāng)庫區(qū)(或本地倉(cāng)庫),就是安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)。其中HEAD指向最新放入倉(cāng)庫的版本

Remote:遠(yuǎn)程倉(cāng)庫,托管代碼的服務(wù)器,可以簡(jiǎn)單的認(rèn)為是你項(xiàng)目組中的一臺(tái)電腦用于遠(yuǎn)程數(shù)據(jù)交換

工作流程
拉取代碼 → 本地修改 → 添加到本地緩存區(qū) → 拉取遠(yuǎn)程代碼 → 推送本地代碼到遠(yuǎn)程分支

四 :Git 的簡(jiǎn)單使用

1、搭建Git 項(xiàng)目

# 自主生產(chǎn)
git init
# 克隆Git xiangmu 
git clone 【url】

2、Git 操作

基本操作

# 查看git 狀態(tài)
git status
# 添加文件加入到暫存區(qū)
git add Hello.class
# 暫存區(qū)文件提交到當(dāng)前本地分支
git commit -m "描述提交內(nèi)容"
# 拉取遠(yuǎn)程倉(cāng)庫代碼
git pull
# 提交本地倉(cāng)庫到遠(yuǎn)程倉(cāng)庫
git push origin master
# 查看git 操作歷史 - 獲取 commit_id
git log / git reflog / git log --graph
# 回退到之前版本
git reset --hard commit_id
# 撤銷修改 (文件回到最近一次git commit或git add時(shí)的狀態(tài))
git checkout -- Hello.class
# 刪除文件
git rm Hello.class
# 本地代碼關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫 (也適用于當(dāng)前代碼遠(yuǎn)程倉(cāng)庫修改后更新最新版url)
git remote add origin git@server-name:path/repo-name.git
# 第一次推送master分支的所有內(nèi)容
git push -u origin master

分支管理

# 查看所有分支
git branch ( * 號(hào)后面的分支為當(dāng)前分支)
git branch -r  (遠(yuǎn)程分支)
# 新建分支
git branch dev
# 切換分支
git checkout dev  (git checkout -b dev 組合起來)
git switch dev  (git switch -c dev 組合起來)
# 合并分支 (將dev 合并到master)
git checkout master 
git merge dev
# 刪除分支
git branch -d dev
git branch -D dev (強(qiáng)行刪除)
# 沖突分類
<<<<<<< HEAD
這部分代碼是當(dāng)前分支代碼
=======
這部分代碼是合并或拉去的有沖突代碼
>>>>>>> dev
# 將當(dāng)前工作區(qū)代碼存儲(chǔ)  - 可以解決當(dāng)前工作區(qū)有新增代碼無法切換分支的窘狀
 git stash (恢復(fù)到當(dāng)前分支最新代碼)
# 查看當(dāng)前存儲(chǔ)代碼
git stash list
# 恢復(fù)當(dāng)前存儲(chǔ)
git stash apply (恢復(fù)后內(nèi)容不刪除)
# 刪除當(dāng)前存儲(chǔ)
git stash drop
# 恢復(fù)并刪除
git stash pop
# 將其他分支的某一次提交合并到當(dāng)前分支
git cherry-pick commitid
# 查看遠(yuǎn)程庫信息
git remote -v
# 本地分支推送到遠(yuǎn)程分支
git push origin master
# 本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支
git checkout -b branch-name origin/branch-name
# 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)
git branch --set-upstream branch-name origin/branch-name
# 變基
git rebase
# 創(chuàng)建標(biāo)簽
 git tag v1.0
# 查看標(biāo)簽
git tag
# 對(duì)之前的某一次提交打標(biāo)簽
git log --pretty=oneline --abbrev-commit
git tag v0.9 f52c633 
git tag -a <tagname> -m "blablabla..."
# 查看標(biāo)簽信息
git show v0.9
# 推送本地標(biāo)簽到遠(yuǎn)程
git push origin <tagname>
# 推送全部未推送過的本地標(biāo)簽
git push origin --tags
# 刪除一個(gè)本地標(biāo)簽
git tag -d <tagname> 
# 刪除一個(gè)遠(yuǎn)程標(biāo)簽
git push origin :refs/tags/<tagname>
# 本地代碼庫與遠(yuǎn)程代碼庫關(guān)聯(lián) (多用于遠(yuǎn)程倉(cāng)庫url 修改)
git remote add origin git@gitee.com:wangch/learngit.git
# git 顯示顏色
 git config --global color.ui true
# 別名
git config --global alias.st status

五 :Git 名詞解釋

LICENSE : git 許可證
Untracked : 未跟蹤

六 :參考博客

https://www.liaoxuefeng.com/wiki/896043488029600
https://blog.csdn.net/qq_33369905/article/details/106647320

最后編輯于
?著作權(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)容

  • 1. Git概述 1.1 Git歷史 Git 誕生于一個(gè)極富紛爭(zhēng)大舉創(chuàng)新的年代。Linux 內(nèi)核開源項(xiàng)目有著為數(shù)眾...
    還是那個(gè)沒頭腦閱讀 243評(píng)論 0 0
  • 引言:基于圖形界面 Git 的使用已經(jīng)熟練掌握了。偶爾遇到要使用命令行的情況。在此進(jìn)行簡(jiǎn)單記錄。時(shí)間:2016年1...
    JustDo23閱讀 1,076評(píng)論 0 1
  • Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。 Git是一個(gè)開源的分布式版本控...
    雁歸來兮閱讀 349評(píng)論 0 0
  • 久違的晴天,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開好到教室時(shí),離放學(xué)已經(jīng)沒多少時(shí)間了。班主任說已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,868評(píng)論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽閱讀 10,918評(píng)論 0 11

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