git初級淺入其常用操作

2022-11-24 23:17:12 字數 3055 閱讀 9074

我們從初始化一個倉庫開始,通過此命令可以初始化一個倉庫

git init
首先我們在當前目錄下建立一個目錄pratice和一個檔案test.js

mkdir pratice

cd pratice

touch test.js

ls

然後我們修改一下test.js檔案,給它加上一句**console.log(1)

vim test.js
檢視當前分支倉庫狀態

git status

將工作區中的**提交到快取區中

git status

git add .

這時我們已經在暫存區中新增了一個檔案了

將提交到快取區中的**儲存到本地倉庫中

git log

vim test.js

// 新增console.log(2);

git add .

git commit --amend

你會發現當前commit的id變了,並且上一次的commit被合併到這一次commit當中,使用了這一次新生成的id

此操作用於合併commit,具體而言就是將需要合併的分支上的最後一次commit merge到當前分支的最後一次commit上

我們通過git checkout -b test建立和切換一個新的分支test

目前兩個分支的都指向一個commit id

接下來我們在test上修改test.js,新增console.log(3);然後執行add和commit操作,並切換回master分支使用git merge test

vim test.js

git add .

git commit -m 'modify test.js in branch of test'

現在所有分支狀態是這樣的

git checkout master

git merge test

合併後分支狀態是這樣的

merge用處

衝突情況

當開發人員a改了檔案test1.js,並commit後,開發人員b改了檔案test2.js,並commit。這時開發人員b merge開發人員a的**,這時合併後提交一個新的commit,並且這兩個修改的檔案都有效。

當開發人員a和開發人員都改了檔案test1.js某一行**,並且都commit了。開發人員a如果去merge開發人員b的**,這時會產生一個conflict,使開發人員a進入衝突解決狀態,開啟test1.js會看到衝突的**處,git已經無能力去處理到底誰的**是你要的,但是它會提示衝突處,留待開發人員去處理,

解決方案

1 開發人員手動解決衝突後,在git add .和git commit提交衝突,這時會自動加上上一次commit的備註資訊,因為剛剛進入的是一個conflict衝突修改狀態。

2 如果開發人員放棄解決衝突,可以通過git merge --abort,將會回到merge分支前的狀態

實際試試

首先程式a修改了test.js檔案把第三行**改成了輸出4,並commit了

程式b修改了test.js檔案把第三行**改成了輸出5,並commit了

這時候的分支圖

這時候程式設計師b要合併程式設計師a的**,

git merge test
我們通過vim開啟test.js檔案看看

ok,然後我們認為程式a修改無效,採用我的方案

git add .

git commit

這時候我們看看分支圖

三個圖結果還是很明顯的,就不細說了

三個圖還是挺直觀的,不同的場景使用這三者中的一個

git pull origin master

**********====

git fetch origin master

git merge orgin/master

以上兩個操作是等價

常用 Git 操作

日常用到的git的一些操作,記下來,以備參考。git rm filename git commit m remove filename 如果刪錯了,可以恢復為版本庫裡最新的版本 git checkout filename 正在做一個功能的時候,突然來了bug修復任務,這時就需要先把當前分支上未提交的...

Git常用操作

克隆倉庫 git clone path 標記提交 git add fileordir 正式提交 並新增註釋 git commit fileordir m note 推送至遠端庫 git push origin 檢視本地庫狀態 git status 建立分支 git branch newbranchn...

Git常用操作

老是忘記git的一些操作,所以簡單記錄下git的常用操作 建立版本庫 建立資料夾 mkdir github cd github 空間初始化git init新增檔案到暫存區git add file提交給master 需要注意的是 可以多次進行git add操作把想上傳的檔案新增,一次commit就可以...