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

git是什么?

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

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

  • SVN是集中式版本控制系統(tǒng),版本庫是集中放在中央服務器的,而干活的時候,用的都是自己的電腦,所以首先要從中央服務器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服務器。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作,如果在局域網(wǎng)還可以,帶寬夠大,速度夠快,如果在互聯(lián)網(wǎng)下,如果網(wǎng)速慢的話,就納悶了。
  • Git是分布式版本控制系統(tǒng),那么它就沒有中央服務器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯(lián)網(wǎng)了,因為版本都是在自己的電腦上。既然每個人的電腦都有一個完整的版本庫,那多個人如何協(xié)作呢?比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

git工作流程

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

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

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

配置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 遠程倉庫

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) :此時應有提示有文件需要被加入到文件緩存區(qū)
 
  git status

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

 git add  readme.md
 
 3.查看倉庫狀態(tài):此時應有提示有文件需要commit
 
 git status
 
 4. 把文件緩存區(qū)的文件加入到版本庫中(即把改動點更新到對應分支)
 
 git commit -m '新增 readme.md 文件'
 
  5.對文件修改并重復上面的操作 因為進行了commmit 提交了文件修改,當前空文件的分支被激活
 
  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
  • 當一次性修改多個文件時,可以通過以下命令批量操作
    git add .
    git checkou .
  • 在提交了若干提交和更新后,可以使用gitlog 命令查看操作歷史
   git log
  • git reflog 可以查看所有分支的所有操作記錄
   git reflog
  • 在webstorm 中查看git log
  File->git->show History ->log

本地git倉庫關聯(lián)遠程倉庫

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

遠程倉中有部分代碼,不允許直接把本地的代碼覆蓋上去時

```
1. 更新所有遠程分支到本地
git fetch 

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

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

```

解決代碼沖突

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

  2.修改readme.md 文件內(nèi)容,并push 到遠程分支
     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.拉取遠程分支代碼
    git pull

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

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

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

```
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

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