Git複習總結

git:分佈式版本控制系統

svn:集中式版本控制系統

1.安裝git,傻瓜式安裝

2.要使用git命令行前,要先切換到git bash模式

3.git配置:

用戶信息: git config --global user.name "zcy"

                   git config --global user.email  "[email protected]"

                   檢查所有的配置:git config  --list

4.獲取Git倉庫

4.1. 本地初始化一個文件夾

新建一個文件夾,然後右鍵git  bash  或者vscode中調到bash模式,然後在該文件夾中初始化:git init,目的是讓當前的文件夾被Git管理,生成 .git 文件夾

4.2.拉取遠程倉庫到本地

克隆現有的倉庫:cd  Desktop/ 到桌面上  git clone url

5.三個工作區域:工作目錄,暫存區域(git add),Git倉庫(git commit)

6.以快照的方式來存儲版本,根據哈希值來進行回退版本等操作

7.Git更新狀態命令

追蹤文件與暫存已經修改文件:git add

提交更新:git commit

查看狀態:git status

查看修改:git diff

8.在只有git init 初始化倉庫的情況下,新建一個index.html,暫存:git add index.html

暫存所有文件:git add .    ,提交:git commit -m "第一次提交"

9.查看文件狀態(Untracked:沒有追蹤,Unmodified:沒有修改,Modified:修改,Staged:暫存): git status

10.查看修改:

10.1.  git diff   查看工作目錄與暫存區域的不同

10.2.  git diff  --staged  比較暫存區域與上個版本有什麼不同

10.3.  git diff   --HEAD   比較當前工作目錄與上個版本有什麼不同

10.4.  如果全部提交上去,就沒有查看修改的必要了

11. Git查看提交歷史:git log

12. Git撤銷前,先要查看狀態:git status

12.1. 撤銷到暫存 git checkout  -- <file>,git checkout  --  index.html

12.2. 撤銷暫存 git reset HEAD <file>,git reset HEAD  index.html

13.   Git分支:指針,svn分支比較麻煩,沒有什麼人去使用

默認分支:master

創建分支:git branch testing

分支切換:git checkout  <名字>

13.1.如果當前提交的東西已經是一個版本,簡便的寫法: git commit  -a  -m  "描述",不適合包含未追蹤的文件

13.2.查看在哪個分支上:git status

13.3. 創建新分支:git branch dev,但是當前指針還是指向master,所以要切換到dev分支git  checkout  dev

13.4. 切換回master分支:git checkout master,沒有新分支dev提交的內容,master創建index.js文件,dev也創建index.js文件

,它們分別進行不同的操作,協作開發。

13.5. 重要:我們不要在主分支上修改代碼

如果主分支上面有BUG,我們要再創建一個新的分支來專門修改BUG如:

git branch  issus1 git checkout issus1

如果我們修改完BUG,要git add .  git commit -m "修改BUG",然後切換到主分支:git checkout master,如果修改BUG的issus1 沒問題的話,我們要把這個分支和主分支合併 git merge  issus1,但是要注意,兩個人不要修改同一個文件夾,

會引起衝突,怎麼解決呢?把(當前更改)和(傳入的更改)這兩個刪掉,把要的代碼保留,然後再 git add .    git commit

14.使用遠程倉庫

兩種方式:1.已本地倉庫爲基準,2.已遠程倉庫爲基準:git clone

1.已本地倉庫爲基準:

1.1. 新建文件夾

1.2. git init 初始化倉庫

git add  .   提交到暫存區

git  commit  -m "內容"

1.3. 協作開發,新建遠程倉庫,確保遠程倉庫是空倉庫

1.4. 查看本地倉庫與遠程倉庫是否存在聯繫:git  remote

1.5. 建立本地倉庫與遠程倉庫的聯繫:git remote add origin  遠程地址  ,一個本地倉庫可以跟多個遠程倉庫連接

1.6. 查看本地與遠程倉庫的連接狀態: git  remote  -v

1.7. 把本地倉庫的代碼推送到遠程倉庫去  git  push origin master

提交到遠程倉庫後,如果我們想繼續更新的話,還是 git  add  .  git  commit  -m "內容",但是這時候遠程倉庫並沒有更新,我們爲了讓倉庫去記住我們,不用輸入 git  push origin master這一串,所以我們改成git  push -u origin master,下次推送的話,直接用git  push就可以了。

1.8. 查看當前本地的分支git branch,查看所有的分支:git branch  -va

2.已遠程倉庫爲基準:git clone

1.新建文件夾

2. git bash

3. git clone 遠程地址,git clone http://zcy:zcy@vipgit   給一個用戶名和密碼

4. 查看版本  git log

5.雖然我們測試兩個人提交,但是還是顯示同一個用戶,我們去修改一下

設置當前文件夾的用戶名和密碼:

git config  user.name zcy1

git config  user.email [email protected]

6. 查看一下都有什麼  git config  --list

7.zcy1先做完先提交了代碼,zcy後面才做完,這時候,zcy的代碼和遠程代碼不同步(會報錯),要怎麼操作呢?

要把本地倉庫和遠程倉庫合併,要拉取遠程倉庫,git fetch origin

查看所有的分支:git branch  -va,看一下少了哪些版本

然後要同步的話,git merge  origin/master

多人協作

發現本地倉庫和遠程倉庫不同步,要先拉取代碼,然後合併

拉取:git fetch <name>,看一下別人提交了什麼內容

合併:git merge <branch>

拉取加合併:git pull <name> <branch>,如:git  pull origin master

推送: git push <name> <branch>

:q       :退出

8. 查看本地分支跟蹤的遠程分支: git branch -vv

GitHub的使用

1.New-->選擇public,注意不要初始化,不要勾選readme,-->勾選create-->先點HTTPS-->複製自己剛剛新建的遠程地址-->

git remote add github 遠程地址  -->  git remote  --> 往自己的GitHub上推送代碼,git  push github master-->需要賬戶和密碼-->

然後推送成功

因爲我們不想每次提交都輸入用戶名和密碼,所以我們要把HTTPS改成SSH。

自己的倉庫-->右上角頭像-->Settings-->SSH and GPG keys  --> generating SSH keys  -->Generating a new SSH key and adding it to the ssh-agent -->在隨意的文件夾下輸入命令,

ssh-keygen -t rsa -b 4096 -C "[email protected]"

然後它會把密碼保存在一個文件夾中(C盤...),看你自己需要要不要修改

一路回車,產生完後出現一個圖形

然後複製上面的地址,去自己的電腦中找,會發現兩個文件(私鑰和公鑰):1.id_rsa,2.id_rsa.pub

打開公鑰然後複製,在GitHub上面點New SSH key 按鈕,把剛剛複製往Key裏面黏貼,然後點Add SSH key按鈕,然後我們就可以以SSH的方式複製遠程地址,GitHub就不會找我們要用戶名和密碼

Git工作流

有四種:集中式工作流,功能分支工作流,Gitflow工作流,Forking工作流

集中式工作流:

cd Desktop/  -->git clone 遠程地址,克隆遠程倉庫--> git add .  --> git commit  -m  "提交內容" -->  git push,如果出現問題  -->

git fetch origin,拉取代碼,看看別人更新了什麼  -->  git merge origin/master  合併,如果有衝突,要解決,然後再-->git add . -->git commit -m "解決衝突"  --> git push

有個問題,在GitHub上不想看到解決衝突(提交歷史),怎麼解決呢?(但是不符合真實操作流程)

git add .  --> git commit  -m  "提交內容" -->  git push,如果出現問題  -->git fetch origin,拉取代碼,看看別人更新了什麼  --> 

git rebase origin/master,如果沒有衝突的話  -->  git push,這時候,就不會把解決衝突提交上去

git rebase origin/master,如果有衝突的話 -->git fetch和git rebase融合,git pull  --rebase  -->解決衝突 -->git add.  -->

git rebase  --continue  -->git push

問題:一般人都不會直接修改master上的代碼

功能分支工作流:

新建分支開發,開發完上傳到遠程倉庫分支,pull request  接受或者修改

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章