git基礎(chǔ)知識與常規(guī)操作

git是什么镰绎?

Git 是一個開源的狗唉,目前世界上最先進(jìn)的分布式版本控制系統(tǒng)

SVN與Git的最主要的區(qū)別摊册?

  • SVN是集中式版本控制系統(tǒng),版本庫是集中放在中央服務(wù)器的篙贸,而干活的時候投队,用的都是自己的電腦,所以首先要從中央服務(wù)器哪里得到最新的版本爵川,然后干活敷鸦,干完后,需要把自己做完的活推送到中央服務(wù)器寝贡。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作扒披,如果在局域網(wǎng)還可以,帶寬夠大圃泡,速度夠快碟案,如果在互聯(lián)網(wǎng)下,如果網(wǎng)速慢的話洞焙,就納悶了蟆淀。
  • Git是分布式版本控制系統(tǒng),那么它就沒有中央服務(wù)器的澡匪,每個人的電腦就是一個完整的版本庫熔任,這樣,工作的時候就不需要聯(lián)網(wǎng)了唁情,因?yàn)榘姹径际窃谧约旱碾娔X上疑苔。既然每個人的電腦都有一個完整的版本庫,那多個人如何協(xié)作呢甸鸟?比如說自己在電腦上改了文件A惦费,其他人也在電腦上改了文件A,這時抢韭,你們兩之間只需把各自的修改推送給對方薪贫,就可以互相看到對方的修改了。

git工作流程

  • 主要分為:Remote(遠(yuǎn)程倉)->Repository(版本倉刻恭,本地倉庫)-> Index(臨時區(qū)) ->Workspce(自己工作區(qū))

先從自己clone項(xiàng)目下來開始說整個工作流程分為(workspace->Index->Repository->Remote)

  • Workspace:就是平時進(jìn)行開發(fā)改動的地方瞧省,是當(dāng)前看到最新的內(nèi)容扯夭,在開發(fā)的過程也就是對工作區(qū)的操作
  • Index:當(dāng)執(zhí)行 git add 的命令后,工作區(qū)的文件就會被移入暫存區(qū)鞍匾,暫存區(qū)標(biāo)記了當(dāng)前工作區(qū)中那些內(nèi)容是被 Git 管理的交洗,當(dāng)完成某個需求或者功能后需要提交代碼,第一步就是通過 git add 先提交到暫存區(qū)橡淑。
  • Repository:位于自己的電腦上构拳,通過 git commit 提交暫存區(qū)的內(nèi)容,會進(jìn)入本地倉庫梁棠。
  • Remote:用來托管代碼的服務(wù)器置森,遠(yuǎn)程倉庫的內(nèi)容能夠被分布在多個地點(diǎn)的處于協(xié)作關(guān)系的本地倉庫修改,本地倉庫修改完代碼后通過 git push 命令同步代碼到遠(yuǎn)程倉庫符糊。

配置Git暇藏、初始化倉庫

1. 配置Git 賬戶信息

git config --global user.name 'rosebay'
git config --global user.email 'userEmail'

2. 創(chuàng)建一個新目錄(版本庫)并初始化

 mkdir demo
 cd demo
 git init
 

clone 遠(yuǎn)程倉庫

git clone 代碼倉庫地址

創(chuàng)建分支

1. 查看倉庫的狀態(tài)
git status

2. 創(chuàng)建dev分支并選擇此分支
git chechout -b dev

新建文件、提交濒蒋、回滾、日志查看

 0. 在demo文件夾dev分支上創(chuàng)建`readme.md`文件
 1.查看倉庫狀態(tài) :此時應(yīng)有提示有文件需要被加入到文件緩存區(qū)
 
  git status

2.把有改動的文件加入到文件緩存區(qū)

 git add  readme.md
 
 3.查看倉庫狀態(tài):此時應(yīng)有提示有文件需要commit
 
 git status
 
 4. 把文件緩存區(qū)的文件加入到版本庫中(即把改動點(diǎn)更新到對應(yīng)分支)
 
 git commit -m '新增 readme.md 文件'
 
  5.對文件修改并重復(fù)上面的操作 因?yàn)檫M(jìn)行了commmit 提交了文件修改把兔,當(dāng)前空文件的分支被激活
 
  git branch
  git status 
  git add readme.md
  git  commit -m 'readme,md被修改了'
  git status
 
  • 代碼回滾:如果上步commit 時失誤的操作沪伙,想回到上次commit 的狀態(tài)可以使用文件回滾操作
  git reset --hard HEAD~1
  • 代碼回滾后,如果文件緩存區(qū)的修改需要移除
  git checkout readme.md
  git status
  • 當(dāng)一次性修改多個文件時县好,可以通過以下命令批量操作
    git add .
    git checkou .
  • 在提交了若干提交和更新后围橡,可以使用gitlog 命令查看操作歷史
   git log
  • git reflog 可以查看所有分支的所有操作記錄
   git reflog
  • 在webstorm 中查看git log
  File->git->show History ->log

本地git倉庫關(guān)聯(lián)遠(yuǎn)程倉庫

```
 1.本地倉庫與遠(yuǎn)程倉庫關(guān)聯(lián)
 git remote add origin '遠(yuǎn)程倉庫的地址'
 
 2. 拉取遠(yuǎn)程分支代碼
 git pull orign dev
 
 3. 修改代碼并更新到本地
 git add.
 git  commit -m '修改代碼描述'
 
 4. 上傳本地代碼到遠(yuǎn)程分支
 git push orign dev
 
 5. 此后可以直接使用git pull 、git push  操作遠(yuǎn)程分支代碼
 git pull 
 
 6.改動代碼
 git add.
 git commit -m '改動點(diǎn)描述'
 git push
 
 7.push本地代碼到遠(yuǎn)程master分支時需要權(quán)限
 8. 關(guān)聯(lián)遠(yuǎn)程
 
```

遠(yuǎn)程倉中有部分代碼缕贡,不允許直接把本地的代碼覆蓋上去時

```
1. 更新所有遠(yuǎn)程分支到本地
git fetch 

2.更新內(nèi)容與本地合并
git merge

3.merge 報(bào)錯 :fatal refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
 
 4.再次合并
 git merge
 
 5. merge 報(bào)錯 Please , commit your cahnges before you merge
 git add . 
 git commit -m  '提交信息'
 git merge
 
 6. 拉取遠(yuǎn)程分支代碼
 此時本地與遠(yuǎn)程分支代碼相同不會報(bào)錯
 git pull
 
7. git push orgin '遠(yuǎn)程分支名稱'

```

解決代碼沖突

```
  1.clone 遠(yuǎn)程分支代碼到本地另一個目錄
    git clone '分支git地址'

  2.修改readme.md 文件內(nèi)容翁授,并push 到遠(yuǎn)程分支
     git status
     git add .
     git commit -m '代碼內(nèi)容修改描述'
     git push

  3.找到最開始的該工程文件夾,修改和第2步中文本的同一行內(nèi)容
    git status 
    git add .
    git commit -m '代碼內(nèi)容修改描述'

  4.拉取遠(yuǎn)程分支代碼
    git pull

  5.沖突報(bào)錯 晾咪,解決沖突 根據(jù)沖突提示內(nèi)容收擦,手動修改代碼
    git add .
    git commit -m '修改代碼描述'

 6.解決沖突后再次拉取代碼
     git pulll

 7.將解決沖突后最新的代碼push
    git push    

```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谍倦,隨后出現(xiàn)的幾起案子塞赂,更是在濱河造成了極大的恐慌,老刑警劉巖昼蛀,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宴猾,死亡現(xiàn)場離奇詭異,居然都是意外死亡叼旋,警方通過查閱死者的電腦和手機(jī)仇哆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夫植,“玉大人讹剔,你說我怎么就攤上這事。” “怎么了辟拷?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵撞羽,是天一觀的道長。 經(jīng)常有香客問我衫冻,道長诀紊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任隅俘,我火速辦了婚禮邻奠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘为居。我一直安慰自己碌宴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布蒙畴。 她就那樣靜靜地躺著贰镣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪膳凝。 梳的紋絲不亂的頭發(fā)上碑隆,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機(jī)與錄音蹬音,去河邊找鬼上煤。 笑死,一個胖子當(dāng)著我的面吹牛著淆,可吹牛的內(nèi)容都是我干的劫狠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼永部,長吁一口氣:“原來是場噩夢啊……” “哼独泞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苔埋,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤阐肤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后讲坎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孕惜,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年晨炕,在試婚紗的時候發(fā)現(xiàn)自己被綠了衫画。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓮栗,死狀恐怖削罩,靈堂內(nèi)的尸體忽然破棺而出瞄勾,到底是詐尸還是另有隱情,我是刑警寧澤弥激,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布进陡,位于F島的核電站,受9級特大地震影響微服,放射性物質(zhì)發(fā)生泄漏趾疚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一以蕴、第九天 我趴在偏房一處隱蔽的房頂上張望糙麦。 院中可真熱鬧,春花似錦丛肮、人聲如沸赡磅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焚廊。三九已至,卻和暖如春习劫,著一層夾襖步出監(jiān)牢的瞬間节值,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工榜聂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嗓蘑。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓须肆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桩皿。 傳聞我的和親對象是個殘疾皇子豌汇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

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