Git Bash的使用小結(jié)
創(chuàng)建版本庫
git init
初始化完成后,會在目錄下創(chuàng)建一個.git的隱藏目錄,用來存放項目信息。
添加文件到版本庫
在項目目錄下新建文件readme.txt,內(nèi)容為
Git is a version control system Git is a free software This is my first Try
然后,使用命令
git add
將文件添加到倉庫
然后,使用git commit將文件提交到倉庫:
git commit -m "wrote a readme file"
git commit 的參數(shù)-m后面輸入的是本次提交的備注說明
你也可以先往倉庫中添加多個文件,然后依次性提交:
git add file1.txt git add file2.txt
或者直接在項目中“右鍵”,選擇“Git Add All files now”,將所有修改文件添加到倉庫,然后用“git commit”提交體改到倉庫。
文件修改
現(xiàn)在修改readme.txt內(nèi)容,將第一行內(nèi)容修改為“Git is a distributed version control system“,然后輸入”、
git status
查看結(jié)果:
顯示修改了readme.txt并等待提交,但是它并沒有告訴我們究竟修改了哪些內(nèi)容,這時就可以輸入”git diff“來查看文件到底修改了哪些內(nèi)容:
git diff
然后,將文件保存到倉庫:git add readme.txt ,這時再運行”git status “查看倉庫的狀態(tài):
提示readme.txt已經(jīng)被修改,而且修改將要被提交。運行命令 git commit -m "add word distributed at line one" 將修改提交到倉庫,再運行 git status
git commit -m "add word distributed at line one"
Git會告訴我們沒有需要提交的修改,而且工作目錄是空的。
版本退回
繼續(xù)修改readme.txt 并提交:
這樣,到現(xiàn)在為止,我們的readme.txt就已經(jīng)有了三個版本,我們在實際的開發(fā)中對文件的修改肯定不止這么多,我們肯定也不會記住每次都修改了哪些文件的哪些內(nèi)容,這時,就可以使用git log 命令來查看修改的歷史記錄:
git log
git log 可以查看那由近到遠(yuǎn)的提交歷史,如果輸出的信息太多,可以加上參數(shù):--pretty=oneline
git log --pretty=oneline
上圖中類似”f5526...“這樣的一長串字符串時Git的版本號(commit id)與SVN不一樣不是類似1、2、3的遞增數(shù)字,而是用SHA1計算出來的一個非常大的數(shù)字,用十六進(jìn)制表示,而且每臺計算機(jī)看到的也不同。那為什么commit id要用這么一長串字符串來表示呢?因為Git是分布式的版本管理系統(tǒng),如果大家都用1、2、3這樣的版本號,那肯定會發(fā)生沖突。
那怎么把readme.txt退回到上個版本呢?
首先,Git必須知道當(dāng)前是哪個版本。在Git中,用 HEAD 表示當(dāng)前版本,上個版本是 HEAD^ ,上上個版本是 HEAD^^ ,再網(wǎng)上可以用 HEAD~n?,F(xiàn)在,我們將當(dāng)前版本返回到上個版本:
git reset --hard HEAD^
然后readme.txt內(nèi)容就回到了上個版本:
然后,輸入
git log
查看當(dāng)前版本庫狀態(tài):
最新的那個”append GPL“ 版本已經(jīng)看不到了!好比從21世紀(jì)回到了19世紀(jì),想再回去已經(jīng)回不去了。
其實方法還是有的,我們可以使用 git reset --hard commit id 來跳回到指定的版本,當(dāng)然,你要記得那個版本號:
git reset --hard f5526
查看文件,然后你會發(fā)現(xiàn)文件內(nèi)容又變成了原來的那個最新版本:
上面的方法固然可以回到對應(yīng)的版本,但是你必須知道對應(yīng)的版本號,如果你找不到版本號,那怎么辦呢?
Git 提供了一個命令 git reflog來記錄你的每次命令:
git reflog
這樣你就可以通過對應(yīng)的歷史記錄提示,找到commit id來返回到對應(yīng)的版本。
撤銷修改
現(xiàn)在我們繼續(xù)修改 readme.txt ,在文件中增加一行:This is some wrong words,保存。
情況一:文件做了修改,但還沒有使用git add 將修改提交到暫存區(qū)。
這是,我們輸入 git status
git? status
Git就會提示我們,修改還沒有提交,然后也會提示我們可以使用git add將文件修改提交 或者 使用git checkout來取消修改。我們輸入命令 git chkout --readme.txt ,然后輸入命令git status :
git chkout --readme.txt?git status?
Git會提示沒有做修改,工作區(qū)是空的,然后,我們就撤銷了對文件的修改。
情況二:我們修改了文件,并使用git add將修改提交到了暫存區(qū)
這種情況下,我們同樣輸入命令 git status
Git會提示我們文件的修改已經(jīng)提交到暫存區(qū),等待提交到master。同時也提示我們,可以使用git reset HEAD file命令來撤銷。
git reset HEAD file
輸入命令 git status,Git會告訴我們,文件的版本回到了git add之前的狀態(tài),然后如果我們還想將工作區(qū)的修改丟掉,就使用上面情況一的方法:git checkout --file
另外的
如果你修改提交到暫存區(qū)并提交到了版本庫,這時想要撤回修改,只要使用上面的版本退回就可以了。如果你提交到了版本庫,并提交到了遠(yuǎn)程版本庫,那就很難撤銷修改了。
文件刪除
將readme.txt 刪除,然后輸入命令git status
git status
Git就會提示我們,刪除了文件,但是改變還沒有提交,可以使用git restore來取消修改,或者使用git rm file來提交修改
git rm readme.txt git commit -m "delete firl readme.txt"
然后,readme.txt 就從版本庫中刪除了
到此這篇關(guān)于Git Bash的使用小結(jié)的文章就介紹到這了,更多相關(guān)Git Bash內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vscode中使用Autoprefixer3.0無效的解決方法
這篇文章主要介紹了vscode中使用Autoprefixer3.0無效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Jebrains付費插件Activation code[持續(xù)更新]
這篇文章主要介紹了Jebrains付費插件Activation code[持續(xù)更新],使用本Activation code需要jetbrains-agent支持!感興趣的朋友跟隨小編一起看看吧2020-09-09Window下安裝JDK1.8+Tomcat9.0.27+Mysql5.7.28的教程圖解
這篇文章主要介紹了Window下安裝JDK1.8+Tomcat9.0.27+Mysql5.7.28的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11淺析mmdetection在windows10系統(tǒng)環(huán)境中搭建過程
這篇文章主要介紹了mmdetection在windows10系統(tǒng)環(huán)境中搭建過程,本文圖文并茂通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01