理解Git操作
git工作圖解
git工作流程.png
開始寫代碼前,可以在本地新建一個倉庫,編寫代碼后提交遠程服務(wù)器耳舅;也可以從git服務(wù)器上克隆一個倉庫到本地,修改代碼后再更新到遠程服務(wù)器
初始化本地倉庫 git init
mkdir test
cd test
git init
克隆遠程倉庫到本地 git clone
舉個例子: 假如遠程使用github服務(wù)倚评,用戶名為zhangsan浦徊,倉庫為test
- https方式:
git clone https://github.com/zhangsan/test
- ssh方式:
git clone git@github.com:zhangsan/test
- 提示: 克隆下來默認是master主分支,若你需要工作在其他分支天梧,還需要創(chuàng)建新分支與服務(wù)器分支對應(yīng),參考分支管理盔性。
添加文件到暫存區(qū) git add
- 添加main.c main.h文件
git add main.c main.h
- 添加所有.h文件
git add *.h
- 添加所有文件
git add .
提交到本地倉庫 git commit
- 從暫存區(qū)提交到本地倉庫
git commit -m "提交說明"
- 從工作區(qū)提交到本地倉庫
git commit -a -m "提交說明"
-
提示: 如果從工作區(qū)直接提交所有修改到本地倉庫,則可以不用使用
git add
命令呢岗。
遠程倉庫管理 git remote
添加遠程倉庫映射
舉個例子: 假如遠程使用github服務(wù)冕香,用戶名為zhangsan,倉庫為test
- https方式:
git remote add origin https://github.com/zhangsan/test.git
- ssh方式:
git remote add origin git@github.com:zhangsan/test.git
- 提示: origin指代遠程倉庫后豫,默認使用origin這個單詞悉尾,你也可以修改,一旦修改之后的關(guān)于遠程操作的命令都要與之對應(yīng)挫酿,強烈不建議修改构眯。
刪除遠程倉庫映射
git remote rm origin
分支管理 git branch
默認初始化或者克隆遠程倉庫都只有一個分支master, 為了穩(wěn)定主版本和協(xié)作開發(fā)需要新建開發(fā)分支或者bug分支
- 新建develop分支
git branch develop
- 刪除develop分支
git branch -d develop
- 查看本地所有分支
git branch
- 查看遠程所有分支
git branch -r
- 查看本地和遠程所有分支
git branch -a
- 切換到本地develop分支
git checkout develop
- 創(chuàng)建本地develop分支并切換到develop分支
git checkout -b develop
- 創(chuàng)建本地develop分支映射遠程develop分支
git branch develop origin/develop
- 創(chuàng)建本地develop分支映射遠程develop分支并切換分支
git checkout -b develop origin/develop
比較差異 git diff
- 文件差異:工作區(qū)對比本地倉庫的main.c文件差異
git diff main.c
- 分支差異:
- 本地分支branch2對比本地分支branch1的差異
git diff branch1 branch2
- 遠程分支branch1對比本地分支branch1的差異
git diff branch1 origin/branch1
- 本地分支branch2對比本地分支branch1的差異
-
提示: 如果覺終端里查看改動部分不方便早龟,可以重定向到文件
git diff main.c > main.diff
標簽管理 git tag
本地標簽管理
- 添加標簽v1.0到本地倉庫最新版本
git tag v1.0
- 添加標簽v1.0到本地倉庫某一個版本
git tag v1.0 1b8693e
- 刪除標簽v1.0
git tag -d v1.0
遠程標簽管理
- 推送本地標簽v1.0到遠程倉庫
git push origin v1.0
- 推送本地所有標簽
git push --tags
- 刪除遠程標簽v1.0
git push origin --delete tag v1.0
或者git push origin :refs/tags/v1.0
惫霸,冒號前為空,提交一個本地空標簽到遠程標簽v1.0葱弟,等于刪除遠程標簽v1.0
推送到遠程倉庫 git push
需要已經(jīng)映射遠程倉庫地址壹店,并且有遠程倉庫管理權(quán)限
- 推送本地master分支到遠程master分支
git push origin master:master
或者git push origin master
- 推送本地develop分支到遠程develop分支
git push origin develop:develop
或者git push origin develop
提示:
develop:develop
,冒號前代表本地develop分支翘悉,冒號后代表遠程develop分支茫打,若遠程服務(wù)器沒有develop分支居触,遠程則會新建develop分支妖混,并接受本地develop分支的提交,可以省略冒號和前面的內(nèi)容轮洋,也代表是把本地develop分支提交到遠程develop分支制市,和當時本地工作所在哪一個分支沒關(guān)系。
- 刪除遠程develop分支
git push origin --delete develop
或者git push origin :develop
,冒號前為空弊予,提交一個本地空分支到遠程develop分支祥楣,等于刪除遠程develop分支
拉取遠程倉庫的更新到本地 git pull
需要已經(jīng)映射遠程倉庫地址,并且有遠程倉庫管理權(quán)限
- 更新遠程master分支到本地master分支
git pull origin master
- 更新遠程所有分支到本地所有分支
git pull origin