git 的基本使用

一伙菜、獲取 Git 倉庫

有兩種方式可以獲取 git 倉庫贰镣,一種是在現(xiàn)有的項目或者目錄下將所有文件導(dǎo)入到 git 中酒繁,另一種是從服務(wù)器上克隆一個現(xiàn)有的 git 倉庫穷躁。

1耕肩、第一種方式

git init

下面是實際的操作:

git init 建立本地倉庫

但是這樣只是建立了一個本地的倉庫,現(xiàn)在要將建立一個遠(yuǎn)程的倉庫问潭,并將本地和遠(yuǎn)程的倉庫連接起來。

新建遠(yuǎn)程倉庫
git remote add origin url
git remote -v
git push -u origin master
為本地倉庫添加遠(yuǎn)程

此時刷新 github 頁面可以看到已將本地和遠(yuǎn)程倉庫連接起來婚被,還可以看到有一次 commit 以及 push 到遠(yuǎn)程的文件:

第一種方式適用于你想要用 git 倉庫來管理你本地的項目或者文件狡忙。

2、第二種方式

git clone url

復(fù)制已有的 git 倉庫的鏈接址芯,使用 git clone url 命令將遠(yuǎn)程倉庫克隆到本地灾茁。

第二種方式適用于你想要獲取一個已經(jīng)存在的 git 倉庫的拷貝。

二谷炸、上傳本地修改

git add file
添加所有修改可以用 git add .
git commit -m "commit description"
git push
完整的寫法:git push remoteName branchName
git push origin master
可以使用 git status 來查看狀態(tài)

修改之前 file.txt 文件的內(nèi)容:

修改前 file 文件

進(jìn)行的操作:

上傳修改后的文件的操作

修改之后 file.txt 文件的內(nèi)容:

三北专、查看 commit 記錄

git log

github 中顯示的 commit 記錄:

使用 git log 命令:

commit 后面跟著的是 commit id,可以用于版本回退旬陡。

四拓颓、版本回退

回退到上 n 個版本:git reset --hard HEAD~n
回退到某個指定的版本:git reset --hard commit id

五、解決沖突

git merge

一般項目會由多人合作描孟,也就會出現(xiàn)沖突的情況驶睦。一般沖突分為兩種砰左,一種是 A 對 a 文件修改,B 對 b 文件修改场航,另一種是 A 和 B 都對 file 文件進(jìn)行修改缠导。

1、A 對 a 文件修改溉痢,B 對 b 文件修改

遠(yuǎn)程模擬 A 對 a 文件進(jìn)行修改僻造,A 新增文件 a 且輸入一些內(nèi)容,實際情況下最好不要在 github 上直接進(jìn)行操作:

A 對 a 文件進(jìn)行修改

本地新建文件 b 并輸入內(nèi)容提交:
在進(jìn)行完 add 和 commit 操作之后孩饼,如果直接進(jìn)行 push 操作是會報錯髓削,提示你需要先 git pull,將遠(yuǎn)程文件先拉取下來捣辆,然后才能進(jìn)行 push 操作蔬螟。

B 對 b 文件進(jìn)行修改

git pull 之后會自動的進(jìn)行 merge:

2、A 和 B 都對 file 文件進(jìn)行修改

還是在 github 上模擬 A 對文件 file 的修改:


A 對 file 文件修改

在本地 B 對 file 文件進(jìn)行修改:
同樣的在 push 操作之前要先進(jìn)行 pull 操作汽畴,但是這個時候不會自動的解決沖突旧巾,而是要手動的解決沖突,解決沖突完之后才能 push 到遠(yuǎn)程忍些。

B 對 file 文件進(jìn)行修改
沖突的 file 文件
解決沖突完后的 file 文件

解決沖突完之后重新 commit鲁猩,然后 push 到遠(yuǎn)程:


六、分支的使用

1罢坝、建立分支

新建分支:git branch branchName
切換分支:git checkout branchName
新建分支并切換到該分支:git checkout -b branchName
查看當(dāng)前所有分支及當(dāng)前所在的分支:git branch

2廓握、暫存

保存當(dāng)前進(jìn)度:git stash
顯示保存進(jìn)度的列表:git stash list
恢復(fù)最新的進(jìn)度到工作區(qū):git stash pop

建立了分支之后,我們在一個分支上進(jìn)行工作嘁酿,工作到一半的時候有人反饋了一個問題需要你立刻解決隙券,但是新的工作進(jìn)行到一半也不方便 commit,此時可以使用 git stash 命令將當(dāng)前分支的工作暫時保存起來闹司,等到解決完其他的問題之后再切回來繼續(xù)進(jìn)行工作娱仔。

  • 首先我們切換到 first 分支進(jìn)行一些操作:

我們新建一個 stash.txt 的文件,并寫入了一些內(nèi)容游桩,但是此時 master 分支上需要我們?nèi)プ鲆恍┕ぷ魃龋覀兛梢詫?first 分支當(dāng)前的工作暫存起來,使用 git status 命令可以看到借卧,工作樹是干凈的盹憎。

  • 然后我們切換到 master 分支上進(jìn)行工作:
  • 最后我們切回 first 分支,恢復(fù)最新的進(jìn)度到工作區(qū)铐刘,繼續(xù)進(jìn)行原來的工作:

3陪每、合并分支

git merge branchName
git rebase branchName
  • git merge
    切回到 master 分支上,將 first 分支合并到 master 上:


    git merge 合并分支

使用 git log 查看 commit 記錄,會發(fā)現(xiàn)有一條很不規(guī)范的 commit 記錄:

git merge 合并分支 commit 的記錄

但是同時 git merge 保存了詳細(xì)的合并信息奶稠,當(dāng)需要保留詳細(xì)的合并信息的時候建議使用 git merge俯艰。

  • git rebase
    然后我們分別再在兩個分支上進(jìn)行修改,使用 git rebase 進(jìn)行合并锌订,查看 commit 的記錄:


    git rebase 合并分支

可以看到竹握,使用 git rebase 合并分支不會出現(xiàn)不規(guī)范的 commit 記錄,但是不會保留詳細(xì)的 merge 信息辆飘,當(dāng)很多的提交信息沒有必要時啦辐,可以嘗試 git rebase。

4蜈项、刪除分支

git branch -d branchName

分支合并到 master 分支上之后芹关,它的作用也就達(dá)到了,我們可以將它刪掉紧卒,不然會殘留許多無用的分支侥衬。


刪除分支

七、不需要追蹤某些文件

1跑芳、永久不追蹤

修改 .gitignore 文件轴总,在 git 中如果想忽略掉某個文件,不讓這個文件提交到版本庫中博个,可以使用修改 .gitignore 文件的方法怀樟。

2、add 之后盆佣,取消追蹤某個文件 / 文件夾

git rm --cached filename
git rm -r --cached foldername
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末往堡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子共耍,更是在濱河造成了極大的恐慌虑灰,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痹兜,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門恐锦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陕贮,“玉大人,你說我怎么就攤上這事戈擒「掏粒” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵荒叼,是天一觀的道長萝玷。 經(jīng)常有香客問我,道長挎春,這世上最難降的妖魔是什么脚线? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任斯碌,我火速辦了婚禮,結(jié)果婚禮上傻唾,老公的妹妹穿的比我還像新娘投慈。我一直安慰自己,他們只是感情好冠骄,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布伪煤。 她就那樣靜靜地躺著,像睡著了一般凛辣。 火紅的嫁衣襯著肌膚如雪抱既。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天扁誓,我揣著相機(jī)與錄音防泵,去河邊找鬼。 笑死蝗敢,一個胖子當(dāng)著我的面吹牛捷泞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寿谴,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼锁右,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了讶泰?” 一聲冷哼從身側(cè)響起咏瑟,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痪署,沒想到半個月后响蕴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡惠桃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜王。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡劈狐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呐馆,到底是詐尸還是另有隱情肥缔,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布汹来,位于F島的核電站续膳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏收班。R本人自食惡果不足惜坟岔,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摔桦。 院中可真熱鬧社付,春花似錦、人聲如沸邻耕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兄世。三九已至啼辣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間御滩,已是汗流浹背鸥拧。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留艾恼,地道東北人住涉。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像钠绍,于是被迫代替她去往敵國和親舆声。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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

  • 一柳爽、前言: 關(guān)于git的學(xué)習(xí)最早是來源于廖雪峰帥哥的官網(wǎng)媳握,通俗易懂,場景眾多磷脯。不過最近在掘金上看了一個帥哥的文章蛾找,...
    前端小學(xué)生_f675閱讀 272評論 0 0
  • 1.從遠(yuǎn)程倉庫拉代碼 git fetch origin(此處可用tab進(jìn)行聯(lián)想輸入or直接出現(xiàn)origin) 之后...
    1a4d4ac5a222閱讀 372評論 0 0
  • 經(jīng)過一下午的git學(xué)習(xí),感覺受益匪淺赵誓,不扯淡了打毛,直接進(jìn)入主題吧柿赊,以下是小二對git的一些見解。 首先取得項目的gi...
    走在路上的小二閱讀 428評論 0 3
  • 一. 掌握 - git 概述 1. git 簡介? 什么是git? > git是一款開源的分布式版本控制工具 > ...
    Louis_hey閱讀 510評論 1 3
  • git 使用筆記 git原理: 文件(blob)對象幻枉,樹(tree)對象碰声,提交(commit)對象 tree對象 ...
    神刀閱讀 3,773評論 0 10