git常用操作

第一次連接遠(yuǎn)程倉庫的配置

1)配置user.name 和user.email

git config --global user.name "name"? #設(shè)置你的用戶名

git config --global user.email "emil"? #設(shè)置用戶的email賬號(hào)

2)生成密鑰

ssh-keygen -t rsa -C "your email"? #其中填的是你的注冊的github的賬號(hào),輸入之后如果不需要輸入密碼的話柜砾,連續(xù)輸入三個(gè)回車即可瞳浦,最后在你的在終端輸入 cd ~/.ssh 進(jìn)入到你的文件下可以看到有兩個(gè)文件id_rsa和id_rsa.pub,最后復(fù)制你的id_rsa.pub中的內(nèi)容到github中的賬號(hào)中即可

ssh -T git@github.com? #如果上面的步驟已經(jīng)完成了蝇完,那么就是驗(yàn)證是否完成了傻咖,輸入上述語句,如果出現(xiàn)信息解滓,那么證明說明你已經(jīng)成功了

管理修改

通常我們在提交之后會(huì)想要修改,當(dāng)然我們是在文件上直接修改值骇,但是修改后在git上輸入git status查看此時(shí)的工作區(qū)的狀態(tài),你會(huì)發(fā)現(xiàn)出現(xiàn)了出現(xiàn)了如下的語句:

從上面的提示可以看出我們有如下方案:

首先執(zhí)行 ->git add file.txt , 然后重新提交 git commit -m 'modified file.txt

撤銷修改(沒有提交的[commit])

這里的撤銷修改僅僅是對于沒有提交的撤銷(git commit -m ''),在下面會(huì)講到如何撤銷提交后的撤銷

1) 未git add

當(dāng)我們修改后會(huì)出現(xiàn)上面的提示祝懂,前面已經(jīng)貼過了,這里就不再貼代碼了祟剔,根據(jù)提示仅父,我們可以git checkout -- file.txt來丟棄工作區(qū)的修改案训,之后就可以看見先前的修改已經(jīng)不見了

2) 已經(jīng)git add

當(dāng)我們修改文件后并且git add添加到暫存區(qū)了蓉冈,那么查看狀態(tài)git status,出現(xiàn)的提示如下

根據(jù)上面提示的方法:輸入git reset HEAD file.txt,可以看到文件回到未git add的狀態(tài)了,這時(shí)如果你想要丟棄修改矩乐,使用git checkout -- file.txt,之后就可以看到你的修改已經(jīng)不見了

刪除文件

其實(shí)刪除也是一種修改操作傀蓉,我們在文件管理器中直接使用rm刪除文件繁调,這時(shí)輸入git status可以看到如下的提示:

如果你不想刪除了裕寨,想要恢復(fù)原來的文件,使用git checkout -- file.txt這個(gè)命令可以讓撤銷修改认轨,也可以撤銷刪除杉畜,起到一鍵還原的作用

如果你想要繼續(xù)刪除,那么有兩種方法:

first: git add file.txt , second: git commit -m ' '

first: git rm file.txt , second: git commit -m ' '

注意:git rm file可以用來刪除提交到版本庫中的文件,一般刪除要執(zhí)行以下命令:git rm file.txt,git commit -m 'delete'牙丽,注意在git commit之前還是可以取消刪除的,使用git checkout -- file.txt,可以一鍵取消刪除

創(chuàng)建與合并分支

1)常用命令:

git checkout -b dev? #創(chuàng)建并且切換到dev分支

git checkout dev? #切換到dev分支

git branch? #查看所有的分支遂唧,帶有*的是當(dāng)前所處的分支

git branch -d dev? #刪除dev分支,一般在合并之后刪除

git branch -D dev? #強(qiáng)制刪除分支,一般在沒有合并就刪除分支會(huì)出現(xiàn)不能刪除,這是就要使用強(qiáng)制刪除這個(gè)分支的命令

git merge dev? #將dev分支合并到當(dāng)前分支,使用到Fast forward模式,但這種模式下,刪除分支后件余,會(huì)丟掉分支信息。

git merge --no-ff -m "merge with no-ff" dev? #強(qiáng)制禁用Fast forward模式,Git就會(huì)在merge時(shí)生成一個(gè)新的commit芋齿,這樣栅炒,從分支歷史上就可以看出分支信息级历。

git log --graph --pretty=oneline --abbrev-commit? #查看分支歷史

2)創(chuàng)建合并

首先我們創(chuàng)建一個(gè)dev分支,使用命令:git checkout -b dev(創(chuàng)建一個(gè)dev分支嚼贡,并且切換到dev分支上)剩辟,我們可以使用git branch查看所有的分支

現(xiàn)在在改變之前master分支上的file.txt文件內(nèi)容吭服,之后git add file.txt,并且提交到版本庫中了(git commit -m 'file.txt'),此時(shí)使用git checkout master切換到master分支上,查看file.txt的文件內(nèi)容傻昙,可以看到里面的內(nèi)容并沒有改變,由此可知兩個(gè)分支是獨(dú)立的,如果你在一個(gè)分之上創(chuàng)建了文件并且提交到版本庫中了,切換到另外一個(gè)分支上济蝉,此時(shí)可以發(fā)現(xiàn)原來創(chuàng)建的文件不見了雁乡,因?yàn)槟鞘橇硗庖粋€(gè)分支的文件曲饱,當(dāng)然我們可以合并分支驻谆,使用git merge dev,這兩個(gè)命令將dev分支合并到當(dāng)前分支

Bug分支管理

如果正在一個(gè)分支上工作象对,另外一個(gè)分支上的程序有一個(gè)Bug需要馬上修改沥邻,但是此時(shí)這個(gè)分支上的東西還需要很長時(shí)間才能完成埃跷,這應(yīng)該怎么辦呢剪勿?難道要放棄當(dāng)前分支上的修改嗎械念?當(dāng)然不是了希停,幸好棍潘,Git還提供了一個(gè)stash功能,可以把當(dāng)前工作現(xiàn)場“儲(chǔ)藏”起來荠呐,等以后恢復(fù)現(xiàn)場后繼續(xù)工作渗钉,具體步驟如下:

git stash? #將當(dāng)前的工作狀態(tài)暫時(shí)存儲(chǔ)在stash中术徊,輸出如下信息

此時(shí)可以使用git status查看當(dāng)前的分支上的狀態(tài)窿祥,可以知道當(dāng)前的的工作區(qū)就是干凈的听系,因此可以放心的修復(fù)另外一個(gè)分支上的的Bug了

git checkout master? #切換分支陕习,修復(fù)Bug

git checkout dev? #修復(fù)好Bug繼續(xù)回到上一個(gè)分支干活

git stash list? #可以看到工作現(xiàn)場還在,輸出如下信息:

如果有多個(gè)修改的內(nèi)容土居,這里的信息肯定不止一條

git stash apply? #恢復(fù)修改,但是這只是恢復(fù)stash的內(nèi)容并不會(huì)刪除德召,這里建議使用git stash pop既恢復(fù)了又刪除了stash中內(nèi)容,注意這里只能恢復(fù)一條數(shù)據(jù)径玖,此時(shí)使用git status查看狀態(tài),可以看到已經(jīng)出現(xiàn)修改的內(nèi)容了

git stash list? #此時(shí)查看當(dāng)前stash中的內(nèi)容可以看到已經(jīng)什么都沒了年堆,當(dāng)然這只是清除一條痒蓬,如果本來有多個(gè)班挖,那么還是會(huì)有其他內(nèi)容的

常用命令

git stash? #將當(dāng)前的分支上的工作暫存到stash中

git stash list? #列出stash中的所有暫存的內(nèi)容

git stash pop? #恢復(fù)并且刪除stash中的內(nèi)容

git stash apply? #恢復(fù)但是步刪除stash中的內(nèi)容

遠(yuǎn)程倉庫的操作

1) 常用的命令

git remote -v? #查看遠(yuǎn)程倉庫的詳細(xì)信息

git remote add remote-name URL? #添加遠(yuǎn)程倉庫

git remote rename origin pb? #將遠(yuǎn)程倉庫的origin改為pb给梅,此時(shí)使用git remote 查看可以知道這里已經(jīng)沒有origin了运吓,變成了pb

git remote rm origin? #將遠(yuǎn)程倉庫origin刪除

git push origin master? #將內(nèi)容提交到遠(yuǎn)程倉庫origin的master上宅静,當(dāng)然這里亦可以使用其他的分支

git clone URL? #克隆一個(gè)遠(yuǎn)程倉庫,這里的URL是遠(yuǎn)程倉庫的地址

git pull origin? #將遠(yuǎn)程倉庫中更新的數(shù)據(jù)拉到本地

git checkout -b branch-name origin/branch-name? #在本地創(chuàng)建和遠(yuǎn)程倉庫對應(yīng)的分支,最好分支的名字相同

git push origin branch-name? #推送到遠(yuǎn)程倉庫的分支

2) 注意

同一個(gè)文件夾中可以添加很多遠(yuǎn)程倉庫旺聚,不過可以在提交的時(shí)候需要指定遠(yuǎn)程倉庫的名字织阳,比如在你的文件夾下有origin和pb兩個(gè)遠(yuǎn)程倉庫,可以使用git remote -v查看詳細(xì)的信息翻屈,此時(shí)你在版本庫中已經(jīng)有想要推送的文件了陈哑,那么使用git push origin master就可以指定推送到origin遠(yuǎn)程倉庫中

3) 實(shí)例

假如你新建一個(gè)文件夾,此時(shí)要在里面添加遠(yuǎn)程倉庫伸眶,具體實(shí)現(xiàn)如下:

git clone URL? #將一個(gè)倉庫克隆來的同時(shí)也具有推送的權(quán)限了惊窖,這時(shí)就可以使用git remote add origin URL來添加遠(yuǎn)程倉庫了

如果沒有使用clone的方法創(chuàng)建一個(gè)版本庫,那么先git init然后git remote add origin URL添加遠(yuǎn)程倉庫厘贼,之后就是將本地倉庫和遠(yuǎn)程倉庫對應(yīng)了界酒,使用git pull origin master來拉取遠(yuǎn)程倉庫中內(nèi)容,當(dāng)然這也可以分兩步嘴秸,使用如下:

git fetch origin master? #這是將遠(yuǎn)程倉庫中的文件拉取到本地毁欣,但是沒有與本地的master合并,因此本地的master分支不能追蹤遠(yuǎn)程倉庫中的分支

git merge origin/master? #將遠(yuǎn)程倉庫和本地的master分支合并岳掐,那么就可以使用本地的master分支追蹤遠(yuǎn)程倉庫了凭疮,這就完成了

無論clone還是pull都只是拉取遠(yuǎn)程的master分支,但是一般遠(yuǎn)程倉庫中還有其他的分支串述,那么怎么辦呢执解?拉取遠(yuǎn)程倉庫的次分支步驟如下:

git checkout -b dev origin/dev? #拉去遠(yuǎn)程倉庫中的dev倉庫到本地的dev分支

原文地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市纲酗,隨后出現(xiàn)的幾起案子衰腌,更是在濱河造成了極大的恐慌,老刑警劉巖觅赊,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件右蕊,死亡現(xiàn)場離奇詭異,居然都是意外死亡吮螺,警方通過查閱死者的電腦和手機(jī)饶囚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門帕翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坯约,你說我怎么就攤上這事熊咽∧迹” “怎么了闹丐?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長被因。 經(jīng)常有香客問我卿拴,道長,這世上最難降的妖魔是什么梨与? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任堕花,我火速辦了婚禮,結(jié)果婚禮上粥鞋,老公的妹妹穿的比我還像新娘缘挽。我一直安慰自己,他們只是感情好呻粹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布壕曼。 她就那樣靜靜地躺著,像睡著了一般等浊。 火紅的嫁衣襯著肌膚如雪腮郊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天筹燕,我揣著相機(jī)與錄音轧飞,去河邊找鬼。 笑死撒踪,一個(gè)胖子當(dāng)著我的面吹牛过咬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播制妄,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼掸绞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了忍捡?” 一聲冷哼從身側(cè)響起集漾,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎砸脊,沒想到半個(gè)月后具篇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凌埂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年驱显,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡埃疫,死狀恐怖伏恐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情栓霜,我是刑警寧澤翠桦,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站胳蛮,受9級特大地震影響销凑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仅炊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一斗幼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抚垄,春花似錦蜕窿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至智哀,卻和暖如春次询,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓷叫。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工屯吊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摹菠。 一個(gè)月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓盒卸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親次氨。 傳聞我的和親對象是個(gè)殘疾皇子蔽介,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容