Git學(xué)習(xí)小結(jié)

今天翻了下git,這是之前學(xué)習(xí)git的記錄
前段時(shí)間學(xué)習(xí)了廖雪峰老師的Git教程,今天再來溫故下,加深下記憶!

創(chuàng)建文件夾、文件

mkdir gittest

touch gittest.txt

創(chuàng)建版本庫

git init

編輯文本文件gittest.txt

Git is a version control system.
Git is free software.

把文件添加到版本庫

git add gittest.txt

提交請(qǐng)求,-m表示提交的信息

git commit -m '第一次提交'

再次編輯gittest.txt

Git is a distributed version control system.
Git is free software distributed under the GPL.

再次提交到版本庫,重復(fù)上面git add git commit指令

查看git 日志,看看之前提交了什么(有學(xué)到了一個(gè)新命令)

git log

返回的數(shù)據(jù)掩護(hù)繚亂,那就來個(gè)簡潔的,只有簡單的兩行數(shù)據(jù)

git log --pretty=oneline

返回上一個(gè)版本(HEAD表示當(dāng)前版本,HEAD^表示上一個(gè)版本)

git reset --hard HEAD^

再次返回上一個(gè)版本 后面那一串?dāng)?shù)字是版本號(hào)

git reset --hard 6f5a174c09469994c2dc59cf6db87ac7012d16c4

我們?cè)賮砜匆幌氯罩咀钚碌恼?qǐng)求又出現(xiàn)了

查看命令歷史

git reflog

git操作分兩步
1、git add file 添加文件到版本庫就是添加到暫存區(qū)
2、git commit 提交請(qǐng)求就是把暫存區(qū)的內(nèi)容提交給master分支

查看工作區(qū)和暫存區(qū)版本的區(qū)別

git diff HEAD --gittest.txt

修改文件后,再添加到版本庫之前(沒有g(shù)it add),想撤銷掉這次操作

git checkout -- gittest.txt

這一次已經(jīng)將文件添加到了暫存區(qū)(git add file),可以這樣撤銷操作

git reset HEAD gittest.txt

這樣我們就從暫存區(qū)返回了工作區(qū),再把工作區(qū)的操作撤回就行了

刪除文件

刪除文件之前新建一個(gè)test.txt,再添加到暫存區(qū)并提交到分支

git rm test.txt

git commit -m '刪除test.txt'

如果是誤刪的話,返回上一個(gè)操作

git checkout test.txt

添加遠(yuǎn)程倉庫

git remote add origin git@github.com:Family-TreeSY/git_test.git

將本地庫的內(nèi)容推送到遠(yuǎn)程

git push -u origin master

從遠(yuǎn)程庫克隆
需要先在github上面創(chuàng)建一個(gè)倉庫

git clone git@github.com:Family-TreeSY/B-2.git

分支管理

創(chuàng)建分支,這個(gè)之后HEADz指向dev,,-b表示創(chuàng)建并切換分支

git checkout -b dev

這條命令相當(dāng)于下面兩條

git branch dev 創(chuàng)建dev分支
git checkout dev 切換到dev分支

查看當(dāng)前分支

git branch

把dev分支合并到master分支

git merge dev

刪除分支

git branch -d dev

查看分支合并圖

git log --graph --pretty=oneline --abbrev-commit

分支管理策略

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

--no-ff: 表示禁用Fast-forward,使用--no-ff 可以看到合并后的歷史有分支
這次創(chuàng)建會(huì)提交一個(gè)commit 所以帶有-m參數(shù)

BUG分支
把當(dāng)前工作藏起來,等恢復(fù)現(xiàn)場后再來工作

git stash

創(chuàng)建bug分支修改bug流程

假如需要在master分支上修復(fù)bug,那就在master上創(chuàng)建分支
git checkout -b issue-101-------->修改gittest.txt-------->git add gittest.txt --------->git commit -m '修復(fù)bug'------------> 切換回master;git checkout master ------------->合并分支;git merge --no-ff -m "合并分支" issue-101---------->刪除issue-101分支; git branch -d issue-101

git checkout -b issue-101

修復(fù)bug的工作結(jié)束了,我們現(xiàn)在重新回到dev分支工作,,查看剛剛的工作現(xiàn)場

git checkout dev

查看剛剛被隱藏的工作現(xiàn)場

git stash list

回到工作現(xiàn)場

git stash pop

feature分支

強(qiáng)行刪除

git branch -D feature-vulcan

多人協(xié)作
查看遠(yuǎn)程庫信息

git remote -v
推送分支
git push origin master

如果是推送dev分支

git push origin dev

多人協(xié)作模式
先推送自己的:git push origin ... ----------> 推送失敗,遠(yuǎn)程庫比本地新需要:git pull 合并------->

如果有沖突就解決沖突---------->沒有沖突或解決沖突后: git push origin 分支

標(biāo)簽管理

首先切換到要打標(biāo)簽的分支

git checkout master

打標(biāo)簽

git tag v1.0

查看標(biāo)簽

git tag

默認(rèn)標(biāo)簽是打在最新的commit上的,我們想在其他commit上打標(biāo)簽就需要查看ID號(hào)

git log --pretty=oneline --abbrev-commit

打在指定commit ID上面

git tag v0.9 1555a84

查看標(biāo)簽信息

git show v0.9

創(chuàng)建帶有說明的標(biāo)簽,用-a指定標(biāo)簽名,-m指定說明文字

git tag -a v0.1 -m '指定標(biāo)簽練習(xí)' c839d68

刪除標(biāo)簽

git tag -d v0.1

推送指定標(biāo)簽daoyuancheng

git push origin v0.9

推送所有標(biāo)簽到遠(yuǎn)程

git push origin --tags

標(biāo)簽已經(jīng)推送到遠(yuǎn)程后再刪除,先刪除本地標(biāo)簽,再刪除遠(yuǎn)程倉庫標(biāo)簽

git tag -d v1.0

git push origin :refs/tags/v1.0

歡迎訪問Treehl的博客

GitHub

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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