今天翻了下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的博客