git基本使用方法和常見問(wèn)題

git的哲學(xué)--沒有消息就是好消息


基本工作流程:

簡(jiǎn)單來(lái)說(shuō)就是把[github遠(yuǎn)程倉(cāng)庫(kù)]的東西拿回到電腦里窟坐,編輯一番海渊,然后把新文件add到[緩存區(qū)]再commit到[本地倉(cāng)庫(kù)]最后push到[github的遠(yuǎn)程倉(cāng)庫(kù)]。具體如下:

  1. 創(chuàng)建一個(gè)文件夾哲鸳,git init將其初始化。
  2. 使用git clone命令把github遠(yuǎn)程倉(cāng)庫(kù)拿過(guò)來(lái)盔憨,(git clone xxxxx)
  3. 進(jìn)行工作徙菠,工作結(jié)束后把編輯或新增的文件用git add xx這個(gè)命令添加到暫存區(qū)。
  4. 用[git commit -m '這地方寫注釋'] 命令把暫存區(qū)的東西提交到本地倉(cāng)庫(kù)郁岩。
  5. 用git push命令把本地倉(cāng)庫(kù)的東西發(fā)到Github的遠(yuǎn)程倉(cāng)庫(kù)里婿奔。
  6. 如果clone的倉(cāng)庫(kù)被別人修改了,記得git pull一下问慎,要不然不能push萍摊。(作業(yè))
    如果多個(gè)分支,記得git pull origin master寫具體點(diǎn)如叼。

ps:如果想再github 上參加開源項(xiàng)目冰木,需要先把這個(gè)項(xiàng)目fork到自己賬號(hào)下的倉(cāng)庫(kù),然后clone到本地笼恰,這樣才能push修改踊沸,否則沒有權(quán)限的話不能push,最后如果你想?yún)⑴c開源項(xiàng)目社证,就在官方倉(cāng)庫(kù)點(diǎn)pull request逼龟,申請(qǐng)一下。


常見情況

  • 如果工作區(qū)有錯(cuò)誤編輯追葡,怎么辦腺律?
  • 如果我已經(jīng)把錯(cuò)誤內(nèi)容add到暫存區(qū)了奕短,怎么辦?
  • 如果我已經(jīng)把錯(cuò)誤內(nèi)容commit到本地倉(cāng)庫(kù)了匀钧,怎么辦翎碑?
  • 如果我已經(jīng)退回到某個(gè)歷史版本了,但我又想恢復(fù)回新版本榴捡,怎么辦杈女?

一、如果工作區(qū)有錯(cuò)誤編輯吊圾,怎么辦达椰?

使用git checkout -- xxx 命令,這時(shí)分兩種情況

  1. 文件沒add项乒,那么該命令會(huì)讓文件回到和本地倉(cāng)庫(kù)完全一樣的狀態(tài)啰劲。
  2. 文件add了,那么該命令會(huì)讓文件回到被添加到暫存區(qū)后的狀態(tài)檀何。
    ps:這個(gè)命令的本質(zhì)其實(shí)是用本地倉(cāng)庫(kù)的狀態(tài)替換工作區(qū)的狀態(tài)蝇裤,所以也可以用來(lái)恢復(fù)被錯(cuò)誤刪除的文件。

二频鉴、如果我已經(jīng)把錯(cuò)誤內(nèi)容add到暫存區(qū)了栓辜,怎么辦?

這時(shí)使用git checkout命令只能操作工作區(qū)文件垛孔,暫存區(qū)的撤銷使用命令:
git reset HEAD xxx 藕甩,這個(gè)命令可以把暫存區(qū)的修改撤銷掉。

ps:把暫存區(qū)的修改撤銷以后周荐,如果使用git checkout命令狭莱,會(huì)讓工作區(qū)文件回到本地倉(cāng)庫(kù)狀態(tài),而不是曾經(jīng)的暫存區(qū)里的狀態(tài)概作。

三腋妙、如果我已經(jīng)把錯(cuò)誤內(nèi)容commit到本地倉(cāng)庫(kù)了,怎么辦讯榕?

每次commit時(shí)骤素,git都會(huì)對(duì)修改進(jìn)行快照,保存文件當(dāng)時(shí)的狀態(tài)瘩扼。
先使用[git log]命令谆甜,查看這些被保存的快照。最上面的快照是最近的集绰。
確定了要撤回到哪個(gè)快照后规辱,使用[git reset --hard HEAD~數(shù)字]命令,HEAD是當(dāng)前版本栽燕,后面的數(shù)字是幾就往前數(shù)幾個(gè)版本罕袋。

ps:也可以使用[git reset --hard xxxx]命令改淑,xxxx是commit id號(hào)。

四浴讯、如果我已經(jīng)退回到某個(gè)歷史版本了朵夏,但我又想恢復(fù)回新版本,怎么辦榆纽?

如果已經(jīng)退回到某個(gè)歷史版本了仰猖,這時(shí)使用[git log]就只能看到當(dāng)前版本(退回到的這個(gè)版本)和更早的快照。
這時(shí)應(yīng)使用[git reflog]命令奈籽,顯示全部記錄饥侵,找到想要恢復(fù)的‘未來(lái)版本’的commit id號(hào)。
再使用[git reset --hard xxxxxxx]即可衣屏,xxxxx就是commit id躏升。


github遠(yuǎn)程倉(cāng)庫(kù)

剛才講的都是本地倉(cāng)庫(kù)以及現(xiàn)有遠(yuǎn)程倉(cāng)庫(kù)再克隆,其實(shí)也可以直接往遠(yuǎn)程倉(cāng)庫(kù)推送狼忱。
步驟如下:

  1. 先有一個(gè)本地倉(cāng)庫(kù)和一個(gè)遠(yuǎn)程倉(cāng)庫(kù)
  2. 把他倆綁定膨疏,使用[git remote add origin git@github.com:github賬戶名/github倉(cāng)庫(kù)名.git]命令
  3. 本地倉(cāng)庫(kù)推送到遠(yuǎn)程倉(cāng)庫(kù),使用[git push -u origin master]命令钻弄,這樣master就綁定了佃却,以后使用[git push origin master]命令就可以把本地倉(cāng)庫(kù)master分支的最新修改推送到github的遠(yuǎn)程倉(cāng)庫(kù)了。

ps:同一個(gè)本地倉(cāng)庫(kù)窘俺,可以對(duì)應(yīng)push多個(gè)遠(yuǎn)程倉(cāng)庫(kù)双霍。
[git remote add coding 地址]這個(gè)是綁定到coding的項(xiàng)目上,git push coding master批销。


git分支操作

git分支類似平行宇宙,平時(shí)互不影響染坯,最后一合并就ok
首先使用[git branch -a]查看本地和遠(yuǎn)程的所有分支均芽,*代表目前所在的分支。
創(chuàng)建一個(gè)新分支git branch xx单鹿,切換到這個(gè)分支git checkout xx掀宋,然后就可以在各個(gè)分支愉快的工作了。
最后使用[git merge xx]命令把分支合并到master上就ok了仲锄。
記得刪除dev分支[git branch -d dev]
ps:合并命令時(shí)把xx分支合并到當(dāng)前分支劲妙,所以記得要切換到mastert上再用。


常用命令:

  • git int 把一個(gè)文件夾初始化成倉(cāng)庫(kù)
  • git clone 把遠(yuǎn)程倉(cāng)庫(kù)的東西拿到本地
  • git add 把文件從工作區(qū)提交到暫存區(qū)
  • git commit -m '注釋' 把暫存區(qū)里的東西都提交到本地倉(cāng)庫(kù)
  • git push 把本地倉(cāng)庫(kù)的東西發(fā)到遠(yuǎn)程倉(cāng)庫(kù)
  • git status 查看目前倉(cāng)庫(kù)的狀態(tài)
  • git diff 如果你向本地倉(cāng)庫(kù)提交文件后儒喊,在工作區(qū)編輯了這個(gè)文件镣奋,git diff xx可以讓你查看兩個(gè)文件的差異。
  • git checkout -- xx 把xx文件在工作區(qū)的修改全部撤銷怀愧;若xx沒add侨颈,那么回到和本地倉(cāng)庫(kù)一樣的狀態(tài)余赢,如果已經(jīng)add了,那么回到添加到暫存區(qū)后的狀態(tài)哈垢。
  • git checkout xx 切換到xx分支
  • git reset HEAD xx 把xx文件的暫存區(qū)修改撤銷掉妻柒。
  • git log 查看本地倉(cāng)庫(kù)的提交歷史,以便確定要退回到哪個(gè)版本耘分。
  • git remote -v 查看本地庫(kù)里記錄的遠(yuǎn)程庫(kù)地址举塔。
  • git branch -a 查看本地和遠(yuǎn)程所有分支。
  • git branch xx 創(chuàng)建新分支xx
  • git checkout xx 切換到xx分支
  • git merge xx 把xx合并到當(dāng)前分支
  • git branch -d xx 把xx分支刪除

ps:

  1. git push origin master 推送到遠(yuǎn)程倉(cāng)庫(kù)的master分支求泰。
  2. git diff HEAD -- XX 可以查看工作區(qū)和本地倉(cāng)庫(kù)的差異
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末央渣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拜秧,更是在濱河造成了極大的恐慌痹屹,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枉氮,死亡現(xiàn)場(chǎng)離奇詭異志衍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)聊替,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門楼肪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人惹悄,你說(shuō)我怎么就攤上這事春叫。” “怎么了泣港?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵暂殖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我当纱,道長(zhǎng)呛每,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任坡氯,我火速辦了婚禮晨横,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘箫柳。我一直安慰自己手形,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布悯恍。 她就那樣靜靜地躺著库糠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坪稽。 梳的紋絲不亂的頭發(fā)上曼玩,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天鳞骤,我揣著相機(jī)與錄音,去河邊找鬼黍判。 笑死豫尽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的顷帖。 我是一名探鬼主播美旧,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贬墩!你這毒婦竟也來(lái)了榴嗅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤陶舞,失蹤者是張志新(化名)和其女友劉穎嗽测,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肿孵,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡唠粥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了停做。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晤愧。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蛉腌,靈堂內(nèi)的尸體忽然破棺而出官份,到底是詐尸還是另有隱情,我是刑警寧澤烙丛,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布舅巷,位于F島的核電站,受9級(jí)特大地震影響河咽,放射性物質(zhì)發(fā)生泄漏悄谐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一库北、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧们陆,春花似錦寒瓦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至椅文,卻和暖如春喂很,著一層夾襖步出監(jiān)牢的瞬間惜颇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工少辣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凌摄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓漓帅,卻偏偏與公主長(zhǎng)得像锨亏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忙干,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git器予,從https:/...
    落魂灬閱讀 12,652評(píng)論 4 54
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,642評(píng)論 9 163
  • 你太久沒有流浪 總是逃避別人的熱情 如果有一天 你帶著簡(jiǎn)單的行囊 試圖去走遍陌生的街道 在風(fēng)里來(lái) 在雨里去 躲不開...
    信徒_e567閱讀 161評(píng)論 0 0
  • 不幸的事乾翔,具有偶然性,有些可能逃脫不了施戴,但有些卻是可以避免的反浓,比如生病這類事。 (一直想寫一篇關(guān)于健康的小日...
    沫若水閱讀 156評(píng)論 0 2
  • 1.字符串以什么開頭 preg_match('/^MP/', 'Mwf');
    魚落于天閱讀 202評(píng)論 0 0