git常用命令

1.git init:git init命令創(chuàng)建一個(gè)新的Git倉(cāng)庫(kù)。它用來將已存在但還沒有版本控制的項(xiàng)目轉(zhuǎn)換成一個(gè)Git倉(cāng)庫(kù),或者創(chuàng)建一個(gè)空的新倉(cāng)庫(kù)。

git init

將當(dāng)前的目錄轉(zhuǎn)換成一個(gè)Git倉(cāng)庫(kù)。它在當(dāng)前的目錄下增加了一個(gè).git文件夾,于是就可以開始記錄項(xiàng)目版本了。

git init

在指定目錄創(chuàng)建一個(gè)空的Git倉(cāng)庫(kù)。運(yùn)行這個(gè)命令會(huì)創(chuàng)建一個(gè)名為directory,只包含.git子目錄的空文件夾。

git init --bare

初始化一個(gè)裸的Git倉(cāng)庫(kù),但是忽略工作目錄。共享的倉(cāng)庫(kù)應(yīng)該總是用--bare標(biāo)記創(chuàng)建(見下面的討論)。一般來說,用—bare標(biāo)記初始化的倉(cāng)庫(kù)以.git結(jié)尾。比如,一個(gè)叫my-project的倉(cāng)庫(kù),它的空版本應(yīng)該保存在my-project.git目錄下。

2.git clone:git clone命令拷貝整個(gè)Git倉(cāng)庫(kù)。這個(gè)命令就像svn checkout一樣,除了”工作副本“是一個(gè)完備的Git倉(cāng)庫(kù)——它包含自己的歷史,管理自己的文件,以及環(huán)境和原倉(cāng)庫(kù)完全隔離。

git clone

將位于的倉(cāng)庫(kù)克隆到本地機(jī)器。原倉(cāng)庫(kù)可以在本地文件系統(tǒng)中,或是通過HTTP或SSH連接的遠(yuǎn)程機(jī)器。

例子:(1)git clone ssh://john@example.com/path/to/my-project.git

? ? ? ? ? ? (2)?git clone ssh://git@172.16.33.3:9422/home/gitrepo/ios.git

? ? ? ? ? (3)git clone git@192.168.45.4:/home/gitrepo/w3cschoolcc.git

? ? ? ? ? (4)git clone?https://github.com/wsswdl/wsswdl.github.com.git

3.git config:git config命令允許你在命令行中配置你的Git安裝(或是一個(gè)獨(dú)立倉(cāng)庫(kù))。這個(gè)命令定義了所有配置,從用戶信息到倉(cāng)庫(kù)行為等等。

4.git add:git add命令將工作目錄中的變化添加到緩存區(qū)。它告訴Git你想要在下一次提交時(shí)包含這個(gè)文件的更新。但是,git add不會(huì)怎么影響你的倉(cāng)庫(kù)——在你運(yùn)行g(shù)it commit前更改都不會(huì)被記錄。

5.git commit:git commit命令將緩存的快照提交到項(xiàng)目歷史。

git commit --amend

合并緩存的修改和上一次的提交,用新的快照替換上一個(gè)提交。緩存區(qū)沒有文件時(shí)運(yùn)行這個(gè)命令可以用來編輯上次提交的提交信息,而不會(huì)更改快照。

6.git status:git status命令顯示工作目錄和緩存區(qū)的狀態(tài)。你可以看到哪些更改被緩存了,哪些還沒有,以及哪些還未被Git追蹤。status的輸出?不會(huì)?告訴你任何已提交到項(xiàng)目歷史的信息。如果你想看的話,應(yīng)該使用git log命令。

7.git log:git log?命令顯示已提交的快照。你可以列出項(xiàng)目歷史,篩選,以及搜索特定更改。git status?允許你查看工作目錄和緩存區(qū),而git log只作用于提交的項(xiàng)目歷史。

git log

使用默認(rèn)格式顯示完整地項(xiàng)目歷史。如果輸出超過一屏,你可以用空格鍵來滾動(dòng),按q退出。

git log -n

用限制提交的數(shù)量。比如git log -n 3只會(huì)顯示3個(gè)提交。

git log --oneline

將每個(gè)提交壓縮到一行。當(dāng)你需要查看項(xiàng)目歷史的上層情況時(shí)這會(huì)很有用。

git log --stat

除了git log信息之外,包含哪些文件被更改了,以及每個(gè)文件相對(duì)的增刪行數(shù)。

git log -p

顯示代表每個(gè)提交的一堆信息。顯示每個(gè)提交全部的差異(diff),這也是項(xiàng)目歷史中最詳細(xì)的視圖。

8.git checkout:切換分支。

9.git revert:git revert命令用來撤銷一個(gè)已經(jīng)提交的快照。它是通過搞清楚如何撤銷這個(gè)提交引入的更改,然后在最后加上一個(gè)撤銷了更改的??提交,而不是從項(xiàng)目歷史中移除這個(gè)提交。這避免了Git丟失項(xiàng)目歷史,這一點(diǎn)對(duì)于你的版本歷史和協(xié)作的可靠性來說是很重要的。

git revert

生成一個(gè)撤消了引入的修改的新提交,然后應(yīng)用到當(dāng)前分支。

10.git reset:

git reset

從緩存區(qū)移除特定文件,但不改變工作目錄。它會(huì)取消這個(gè)文件的緩存,而不覆蓋任何更改。

git reset

重設(shè)緩沖區(qū),匹配最近的一次提交,但工作目錄不變。它會(huì)取消所有文件的緩存,而不會(huì)覆蓋任何修改,給你了一個(gè)重設(shè)緩存快照的機(jī)會(huì)。

撤銷(revert)和重設(shè)(reset)對(duì)比

撤銷和重設(shè)相比有兩個(gè)重要的優(yōu)點(diǎn)。首先,它不會(huì)改變項(xiàng)目歷史,對(duì)那些已經(jīng)發(fā)布到共享倉(cāng)庫(kù)的提交來說這是一個(gè)安全的操作。至于為什么改變共享的歷史是危險(xiǎn)的,請(qǐng)參閱git reset一節(jié)。

其次,git revert可以針對(duì)歷史中任何一個(gè)提交,而git reset只能從當(dāng)前提交向前回溯。比如,你想用git reset重設(shè)一個(gè)舊的提交,你不得不移除那個(gè)提交后的所有提交,再移除那個(gè)提交,然后重新提交后面的所有提交。不用說,這并不是一個(gè)優(yōu)雅的回滾方案。

11.git clean:git clean命令將未跟蹤的文件從你的工作目錄中移除。

12.git rebase:是將分支移到一個(gè)新的基提交的過程。從內(nèi)容的角度來看,rebase只不過是將分支從一個(gè)提交移到了另一個(gè)。但從內(nèi)部機(jī)制來看,Git是通過在選定的基上創(chuàng)建新提交來完成這件事的——它事實(shí)上重寫了你的項(xiàng)目歷史。理解這一點(diǎn)很重要,盡管分支看上去是一樣的,但它包含了全新的提交。

13.git merge:分支合并

將master分支合并到feature分支最簡(jiǎn)單的辦法就是用下面這些命令:

git?checkout?feature

git?merge?master

14.git remote:git remote命令允許你創(chuàng)建、查看和刪除和其它倉(cāng)庫(kù)之間的連接。遠(yuǎn)程連接更像是書簽,而不是直接跳轉(zhuǎn)到其他倉(cāng)庫(kù)的鏈接。它用方便記住的別名引用不那么方便記住的URL,而不是提供其他倉(cāng)庫(kù)的實(shí)時(shí)連接。

git remote

列出你和其他倉(cāng)庫(kù)之間的遠(yuǎn)程連接。

git remote add

創(chuàng)建一個(gè)新的遠(yuǎn)程倉(cāng)庫(kù)連接。在添加之后,你可以將作為便捷的別名在其他Git命令中使用。

git remote rm

移除名為的遠(yuǎn)程倉(cāng)庫(kù)的連接。

git remote rename

將遠(yuǎn)程連接從重命名為。

15.git fetch:git fetch命令將提交從遠(yuǎn)程倉(cāng)庫(kù)導(dǎo)入到你的本地倉(cāng)庫(kù)。拉取下來的提交儲(chǔ)存為遠(yuǎn)程分支,而不是我們一直使用的普通的本地分支。你因此可以在整合進(jìn)你的項(xiàng)目副本之前查看更改。

16.git pull:在基于Git的協(xié)作工作流中,將上游更改合并到你的本地倉(cāng)庫(kù)是一個(gè)常見的工作。我們已經(jīng)知道應(yīng)該使用git fetch,然后是git merge,但是git pull將這兩個(gè)命令合二為一。

17.git push:Push是你將本地倉(cāng)庫(kù)中的提交轉(zhuǎn)移到遠(yuǎn)程倉(cāng)庫(kù)中時(shí)要做的事。它和git fetch正好相反,fetch將提交導(dǎo)入到本地分支,而push將提交導(dǎo)出到遠(yuǎn)程分支。它可以覆蓋已有的更改,所以你需要小心使用。

18.git branch:

列出分支:git branch

刪除分支:git branch - d

?著作權(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)容

  • 配置 首先是配置帳號(hào)信息 ssh -T git@github.com#登陸github 修改項(xiàng)目中的個(gè)人信息 1 ...
    rochuan閱讀 875評(píng)論 1 1
  • 配置 首先是配置帳號(hào)信息ssh -T git@github.com # 登陸 github 修改項(xiàng)目中的個(gè)人信息 ...
    guanguans閱讀 818評(píng)論 0 3
  • git config —global user.name “Nshen” //必須git config —glob...
    困卡閱讀 442評(píng)論 1 9
  • 這座城市的風(fēng)很大,你總是很晚回家,愿你,每一次走進(jìn)深夜的暮色,都有一盞暖燈等你晚歸
    圓角狀態(tài)閱讀 262評(píng)論 0 0
  • 賀喬遷:新屋一住燕歸來, 幾度春秋豪宅開。 一路拼搏成就帶, 高朋滿座樂開懷。
    寒梅熱血閱讀 289評(píng)論 0 0

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