參考:
Git教程|菜鳥網絡
Git教程—廖雪峰
1.Git介紹
- 版本控制系統
Git 是一個開源的分布式版本控制系統,能敏捷高效地處理任何或小或大的項目,通常用于團隊開發(fā)項目過程中對源碼協同編輯和管理。Git 是 Linus Torvalds 在2005年為了幫助管理 Linux 內核開發(fā),基于C開發(fā)的一個開源版本控制軟件,方便其它內核開發(fā)者提交貢獻和修改。什么是版本控制系統?比如用word寫論文,每次修改重新保存另一個文件,最后會出現很多版本,如果導師再修改還需要來回發(fā)送文件合并新內容,這樣會很麻煩。Git可以自動記錄每次文件的改動,支持對文件的協同編輯,就不需要手動管理多個“版本”。
- 分布式控制
其它版本控制工具 CVS, Subversion 均為集中式版本控制系統,版本庫是集中存放在中央服務器的,個人從服務器中取得最新版本,修改結束后推送回中央服務器,類比圖書館,集中式版本控制系統需要連接網絡才能工作。分布式版本控制系統沒有“中央服務器”,每個人的電腦上都是一個完整的版本庫,因此也不需要連接網絡,安全性也很高。目前還有很多其它的版本控制系統,比如CVS, SVN, ClearCase等,Git是最流行的。
2.安裝配置
Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平臺上運行,可在git-scm官網上下載。以windows系統為例,gitforwindows鏡像下載,安裝后包括圖形界面Git GUI和Git Bash
2.1 查看配置信息
git config --list
配置你的服務器的信息,git是分布式版本控制系統,因此每臺機器需要設置用戶名和郵件,使用global表明這臺機器上的所有Git倉庫都使用這個配置信息,也可以對某個倉庫指定不同的用戶名和郵件
$ git config --global user.name 'name'
$ git config --global user.email 'email'
# 查看config
$ git config --list
3.文件管理
3.1 創(chuàng)建倉庫
-
git init
:初始化目錄 -
git add
:添加文件 -
git commit
:提交文件
版本庫也成為倉庫(repository),相當于一個目錄,這個目錄里的所有文件都有能用Git管理,每個文件的修改歷史都可以被追蹤或還原。首先創(chuàng)建一個空目錄mkdir
,進入該文件cd
,pwd
顯示當前目錄,通過git init
將這個目錄變成Git可以管理的倉庫,目錄下會增加一個.git
目錄,用于Git跟蹤管理版本庫。如果沒看到可能是隱藏了,用ls -ah
可以看見
$ mkdir Desktop/learngit
$ cd Desktop/learngit
$ pwd
/c/Users/pengy/Desktop/learngit
$ git init
Initialized empty Git repository in C:/Users/pengy/Desktop/learngit/.git/
$ ls -ah
./ ../ .git/
接著在learngit里面建立一個readme.txt文件,直接新建文件,然后通過git add
和git commit
將該文件提交到倉庫。add
告訴Git,將文件添加到倉庫,可以反復使用,添加多個文件,commit
將文件提交到倉庫,-m
是本次提交的說明。執(zhí)行成功后會顯示 1 file changed(一個文件被改動),2 insertions(+)(插入了兩行內容)(readme.txt里的兩行內容)。設置add
和commit
兩步是因為commit
可以一次性提交多個很多文件,可以多次使用add
添加文件。
$ git add readme.txt
$ git commit -m 'wrote a readme file'
[master (root-commit) 643a68e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
go go go
run everyday
3.2 版本回退
-
git status
:掌握倉庫當前的狀態(tài) -
git diff
:查看修改的內容 -
git log
:查看從最近到最遠的提交日志 -
git reset
:回退到某個指定的版本 -
git reflog
:查看命令歷史,以便確定要回到未來的哪個版本
修改readme.txt文件的內容,改成如下內容,用git status
命令查看結果
go go go
sleep everyday
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
git status
可以讓我們時刻掌握倉庫當前的狀態(tài),上面結果表明,readme.txt被修改過了,但是還沒有提交修改。如果想要查看具體修改的內容,用git diff
命令,可以看出將run修改為了sleep
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 9fbbc68..ab0fdda 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
go go go
-run everyday
\ No newline at end of file
+sleep everyday
\ No newline at end of file
接著用前面提到的方法提交修改
$ git add readme.txt
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: readme.txt
$ git commit -m 'change sleep'
[master 3149571] change sleep
1 file changed, 1 insertion(+), 1 deletion(-)
$ git status
On branch master
nothing to commit, working tree clean
提交后顯示沒有需要提交的修改,工作目錄working tree是干凈。
按照前面的修改方法再修改文件如下
go go go
sleep everyday
young and rich
$ git add readme.txt
$ git commit -m 'append line'
[master 0efc261] append line
1 file changed, 2 insertions(+), 1 deletion(-)
這樣對文件不停的修改,每次修改提交都會保留一個當前內容,方面后續(xù)恢復,如同備份,目前readme.txt已經修改了三次
go go go
run everyday
go go go
sleep everyday
go go go
sleep everyday
young and rich
用git log
查看從最近到最遠的提交日志
$ git log
commit 0efc2612b8fbf89a036e4358c4a0c83f9afddffc (HEAD -> master)
Author: bujibujibiu <123456@gmail.com>
Date: Wed May 24 14:37:07 2023 +0800
append line
commit 3149571d74bc882218458f638eb119dae24e1a57
Author: bujibujibiu <123456@gmail.com>
Date: Wed May 24 14:26:39 2023 +0800
change sleep
commit 643a68e9294e906037cb37d3c120dac6f02a2127
Author: bujibujibiu <carrot12358@gmail.com>
Date: Wed May 24 11:31:55 2023 +0800
wrote a readme file
在圖形化Git Gui中可以清楚看到提交歷史
Git中Head
表示當前版本append line
,HEAD^
表示上一個,HEAD~100
表示上100個,用git reset
回退到上一個版本change sleep
,查看當前文件內容,變成了第二個版本
$ git reset --hard HEAD^
HEAD is now at 3149571 change sleep
$ cat readme.txt
go go go
sleep everyday
再次git log
會發(fā)現只有兩條記錄
$ git log
commit 3149571d74bc882218458f638eb119dae24e1a57 (HEAD -> master)
Author: bujibujibiu <carrot12358@gmail.com>
Date: Wed May 24 14:26:39 2023 +0800
change sleep
commit 643a68e9294e906037cb37d3c120dac6f02a2127
Author: bujibujibiu <carrot12358@gmail.com>
Date: Wed May 24 11:31:55 2023 +0800
wrote a readme file
如果想要回到最新的那個版本,就找到commit id
,版本號寫前幾位,Git會自動尋找對應的版本,可以發(fā)現又回到最新的版本
$ git reset --hard 0efc
HEAD is now at 0efc261 append line
$ cat readme.txt
go go go
sleep everyday
young and rich
為了找到版本號,可以用git reflog
記錄每一次的命令
$ git reflog
0efc261 (HEAD -> master) HEAD@{0}: reset: moving to 0efc
3149571 HEAD@{1}: reset: moving to HEAD^
0efc261 (HEAD -> master) HEAD@{2}: commit: append line
3149571 HEAD@{3}: commit: change sleep
643a68e HEAD@{4}: commit (initial): wrote a readme file
3.3 工作流程
- 工作區(qū)—暫存區(qū)—版本庫分支
在前文中提到過提交修改文件需要通過add和commit兩步,流程如下,工作區(qū)是電腦里能看到的目錄,版本庫(Repository)是文件夾里的隱藏目錄.git
,不算工作區(qū),Git版本庫中包含一個暫存區(qū)(index/stage),還有Git自動創(chuàng)建的第一個分支master
,以及指向master
的一個指針叫HEAD
。git add
將文件修改添加到暫存區(qū),git commit
把暫存區(qū)的所有內容提交到當前分支master
。
比如在readme.txt里增加一行內容,同時新建文件LICENSE.txt,git status
表明修改了一個文件,新增了一個文件為Untracked files。然后git add
這兩個文件,LICENSE.txt和readme.txt被放到了暫存區(qū),git commit
將兩個文件提交到master
分支
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
LICENSE.txt
no changes added to commit (use "git add" and/or "git commit -a")
$ git add readme.txt
$ git add LICENSE.txt
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: LICENSE.txt
modified: readme.txt
$ git commit -m 'stage works'
[master 2312846] stage works
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 LICENSE.txt
$ git status
On branch master
nothing to commit, working tree clean
Git管理的是每一次修改,比如按照下面操作:修改readme.txt—add—修改readme.txt—commit—status,commit提交的只是第一次修改的內容,add將第一次修改放在暫存區(qū),可見Git管理的是每一次修改,而不是文件本身。
# (1)修改readme.txt,新增track changes
$ cat readme.txt
go go go
sleep everyday
young and rich
crzay life
track changes
# (2)readme.txt存放在暫存區(qū)
$ git add readme.txt
# (3)再次修改readme.txt,變成track changes second
$ cat readme.txt
go go go
sleep everyday
young and rich
crzay life
track changes second
# (4)提交暫存區(qū)里的readme.txt
$ git commit -m 'track changes'
[master bd56840] track changes
1 file changed, 2 insertions(+), 1 deletion(-)
# (5)顯示當前狀態(tài),第二次修改的readme.txt沒有被提交
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
用git diff HEAD -- readme.txt
可以看到工作區(qū)和版本庫里的readme.txt區(qū)別
$ git diff HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index a8981d7..a7d5c05 100644
--- a/readme.txt
+++ b/readme.txt
@@ -2,4 +2,4 @@ go go go
sleep everyday
young and rich
crzay life
-track changes
\ No newline at end of file
+track changes second
\ No newline at end of file
3.4 撤銷修改
-
git checkout -- file
:撤銷file工作區(qū)的修改 -
git reset HEAD file
:撤銷暫存區(qū)的修改
如果要撤銷對工作區(qū)的修改,使用git checkout -- file
# (1)readme.txt文件新增stupid day
$ cat readme.txt
go go go
sleep everyday
young and rich
crzay life
track changes second
no hope
stupid day
# (2)刪除工作區(qū)的修改
$ git checkout -- readme.txt
#(3)stupid day已經刪除
$ cat readme.txt
go go go
sleep everyday
young and rich
crzay life
track changes second
no hope
如果已經add
到暫存區(qū),使用git reset
命令把暫存區(qū)的修改回退到工作區(qū),再用checkout
丟棄工作區(qū)的修改
# (1)修改readme.txt新增stupid day
$ cat readme.txt
go go go
sleep everyday
young and rich
crzay life
track changes second
no hope
stupid day
# (2)add到暫存區(qū),狀態(tài)為待提交
$ git add readme.txt
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: readme.txt
# (3)把暫存區(qū)的修改回退到工作區(qū),狀態(tài)為待add
$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
# (4)checkout撤銷工作區(qū)的修改
$ git checkout -- readme.txt
$ cat readme.txt
go go go
sleep everyday
young and rich
crzay life
track changes second
no hope
已經提交了不合適的修改到版本庫時,想要撤銷本次提交,可使用前面的版本回退,不過前提是沒有推送到遠程庫
3.5 刪除文件
-
git rm
:刪除文件 -
git checkout -- file
:恢復工作區(qū)file文件
假設新增一個文件并提交到了版本庫,現在需要刪除這個文件,首先用rm
刪除工作區(qū)中的文件,然后用使用git rm
刪除版本庫中文件
# (1)新增文件test.txt,并add和commit到版本庫
$ git add test.txt
$ git commit -m 'add test.txt'
[master 33f52c0] add test.txt
1 file changed, 1 insertion(+)
create mode 100644 test.txt
# (2)使用rm命令直接刪除工作區(qū)的test.txt
$ rm test.txt
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
# (3)使用git rm刪除版本庫中的test.txt并commit
$ git rm test.txt
rm 'test.txt'
$ git commit -m 'delete test.txt'
[master 2e755a3] delete test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
如果用rm
刪除了工作區(qū)中的某個文件,但是發(fā)現刪錯了,可以通過checkout
用版本庫里的版本替換工作區(qū)的版本,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”
# (1)新增文件test.txt,并add和commit到版本庫
$ git add test.txt
$ git commit -m 'add test new'
[master 943447f] add test new
1 file changed, 1 insertion(+)
create mode 100644 test.txt
# (2)使用rm命令直接刪除工作區(qū)的test.txt
$ cat test.txt
for test
$ rm test.txt
$ cat test.txt
cat: test.txt: No such file or directory
# (3)checkout 恢復工作區(qū)的文件
$ git checkout -- test.txt
$ cat test.txt
for test
4.遠程倉庫
4.1 連接遠程庫
Git是一種分布式版本控制工具,用于管理多版本項目。Github和Gitlab都是基于git的代碼托管平臺,Github一般用于托管開源項目,GitLab比較私密,適合企業(yè)。本地倉庫可以和遠程倉庫之間傳輸需要SSH加密。以github為例。首先在本地Git配置config信息,在Github上用該郵件注冊賬號。
$ git config --global user.name 'name'
$ git config --global user.email 'email'
先通過cd ~/.ssh
查看是否已經配置SSH,如果沒有任何文件,則輸入一下內容配置SSH,一直回車,密碼可以不設置
$ ssh-keygen -t -rsa -C 'HAPPY@HAPPY.com'
Generating public/private rsa key pair.
重新打開.ssh
目錄,id_rsa
是私鑰,不能泄露出去,id_rsa.pub
是公鑰,可以公開,將id_rsa.pub
內容復制到Github的SSH key設置中
$ cd ~/.ssh
$ ls
id_rsa id_rsa.pub
$ cat id_rsa.pub
判斷是否連接成功,輸入下面語句顯示You’ve successfully authenticated, but GitHub does not provide shell access
$ ssh git@github.com
4.2 本地上傳至遠程
-
git remote add origin *********.git
:連接遠程倉庫 -
git push
:將本地分支的內容推送到遠程庫 -
git remote -v
:查看遠程倉庫信息 -
git remote rm <name>
:刪除遠程倉庫
如果通過前面的3.1創(chuàng)建本地倉庫后,想要在GIthub或者Gitlab中也創(chuàng)建一個Git倉庫,并且兩個倉庫遠程同步,首先在GIthub中Create repository創(chuàng)建一個空的Git倉庫,然后,把本地倉庫的內容推送到GitHub倉庫,在本地的倉庫下運行命令
$ git remote add origin *********.git
*********
就是你的遠程倉庫地址,添加后,遠程庫的名字就是origin
,這是Git默認的叫法。用git remote -v可以查看遠程庫信息
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/CPCS (master)
$ git remote -v
origin https://github.com/bujibujibiu/learngit.git (fetch)
origin https://github.com/bujibujibiu/learngit.git (push)
如果添加的時候地址寫錯了,或者就是想刪除遠程庫,可以用git remote rm <name>
命令
$ git remote rm origin
把本地庫的所有內容推送到遠程庫上用git push
,這樣matser
分支的內容就推送到Github中,以后每次修改都可以通過這個命令更新遠程倉庫
$ git push origin master
如果是遠程庫和本地庫都初始化了,現在需要同步,那么首先要將遠程庫pull到本地,然后push。
$ git pull origin master
出現fatal: refusing to merge unrelated histories錯誤就用下面方法強制合并
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit(master)
$ git pull origin master --allow-unrelated-histories
From https://github.com/bujibujibiu/learngit
* branch master -> FETCH_HEAD
Merge made by the 'ort' strategy.
README.md | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 README.md
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit(master)
$ git push origin master
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 12 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 95.42 KiB | 13.63 MiB/s, done.
Total 8 (delta 1), reused 0 (delta 0), pack-reused 0
To https://github.com/bujibujibiu/learngit.git
7ec29b2..fb58fc0 master -> master
4.3 從遠程庫克隆到本地
-
git clone *****
:克隆遠程庫至本地文件
4.2是先有本地倉庫,后有遠程倉庫,如何關聯遠程庫,假設現在先有遠程倉,需要克隆到本地。比如首先創(chuàng)建Github倉庫,勾選Initialize this repository with a README
,這樣GitHub會自動為創(chuàng)建一個README.md
文件。下一步是用命令git clone
克隆一個本地庫。
$ git clone https://github.com/bujibujibiu/learngit.git
這樣本地就會出現一個learngit的庫,并且有README.md
文件
5.分支管理
5.1 創(chuàng)建分支
-
git branch
:查看分支 -
git branch name
:新建分支 -
git checkout (branchname)
:切換分支命令 -
git checkout -b (branchname)
:創(chuàng)建新分支并立即切換到該分支
Git管理修改是將這些提交串成時間線,也就是一個分支,在Git初始化時自動創(chuàng)建了一個分支master
,當前版本HEAD
指向master
,master
指向最新的提交點。每次提交,master
分支都會向前移動一步,隨著不斷提交,master
分支的線也越來越長。如果創(chuàng)建新的分支比如dev
,指向master
相同的提交,再把HEAD
指向dev
,就表示當前分支在dev
上。從現在開始,對工作區(qū)的修改和提交就是針對dev
分支了,比如新提交一次后,dev
指針往前移動一步,而master
指針不變。
如下:創(chuàng)建文件夾learngit,通過3.1的操作新建倉庫并添加readme.txt文件
$ cd learngit
$ git init
Initialized empty Git repository in C:/Users/pengy/Desktop/learngit/.git/
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
readme.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git commit -m 'create readme file'
[master (root-commit) dd8bad0] create readme file
1 file changed, 6 insertions(+)
create mode 100644 readme.txt
$ git status
On branch master
nothing to commit, working tree clean
$ git branch
* master
然后新建分支test
,切換到test
分支
~/Desktop/learngit (master)
$ git branch test
~/Desktop/learngit (master)
$ git branch
* master
test
~/Desktop/learngit (master)
$ git checkot test
git: 'checkot' is not a git command. See 'git --help'.
The most similar command is
checkout
~/Desktop/learngit (master)
$ git checkout test
Switched to branch 'test'
在test
分支下新增文件夾test.txt,ls
發(fā)現在test
分支下有兩個文件readme.txt和test.txt,再切回到master
分支,只剩下readme.txt文件
~/Desktop/learngit (test)
$ ls
readme.txt
~/Desktop/learngit (test)
$ echo 'runoob.com' > test.txt
~/Desktop/learngit (test)
$ ls
readme.txt test.txt
~/Desktop/learngit (test)
$ git add .
warning: in the working copy of 'test.txt', LF will be replaced by CRLF the next time Git touches it
~/Desktop/learngit (test)
$ git commit -m 'add test file'
[test d20d68d] add test file
1 file changed, 1 insertion(+)
create mode 100644 test.txt
~/Desktop/learngit (test)
$ ls
readme.txt test.txt
~/Desktop/learngit (test)
$ git checkout master
Switched to branch 'master'
~/Desktop/learngit (master)
$ ls
readme.txt
使用git checkout -b (branchname)
新建分支newtest
并切換到該分支,文件和master
一樣
~/Desktop/learngit (master)
$ git checkout -b newtest
Switched to a new branch 'newtest'
~/Desktop/learngit (newtest)
$ ls
readme.txt
5.2 刪除分支
-
git branch -d (branchname)
:刪除分支
使用git branch -d (branchname)
刪除前面新建的newtest
分支,注意要切換到別的分支,不能刪除當前所在分支
~/Desktop/learngit (newtest)
$ git branch
master
* newtest
test
~/Desktop/learngit (newtest)
$ git branch -d newtest
error: Cannot delete branch 'newtest' checked out at 'C:/Users/pengy/Desktop/learngit'
~/Desktop/learngit (newtest)
$ git checkout master
Switched to branch 'master'
~/Desktop/learngit (master)
$ git branch -d newtest
Deleted branch newtest (was dd8bad0).
~/Desktop/learngit (master)
$ git branch
* master
test
5.3 合并分支+解決沖突
-
git merge (branchname)
:將任何分支合并到當前分支中(可以不是主分支)
在master
分支中新建文件runoob.php,并且commit
,這樣master
分支中有兩個文件readme.txt和runoob.php,test
分支中有兩個文件readme.txt和test.txt
~/Desktop/learngit (master)
$ git branch
* master
test
~/Desktop/learngit (master)
$ touch runoob.php
~/Desktop/learngit (master)
$ git add .
~/Desktop/learngit (master)
$ git commit -m 'add runoob file'
[master 3dcca8c] add runoob file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 runoob.php
~/Desktop/learngit (master)
$ ls
readme.txt runoob.php
~/Desktop/learngit (master)
$ git checkout test
Switched to branch 'test'
~/Desktop/learngit (test)
$ ls
readme.txt test.txt
合并test
分支到master
分支中,假設兩個分支下都有test.txt文件且不一樣,合并會產生沖突
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit (test)
$ cat test.txt
runoob.com
study
new
amazing
HAPPY
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit (master)
$ cat test.txt
runoob.com
study
new
new again
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit (master)
$ git merge test
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
打開test.txt會看到沖突內容
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit (master|MERGING)
$ cat test.txt
runoob.com
study
new
<<<<<<< HEAD
new again
=======
amazing
HAPPY
>>>>>>> test
Git通常會在進行合并操作時生成MERGE_MSG交換文件,以保存合并消息的內容。如果Git在工作目錄下找到了這個交換文件,說明上一次的合并操作沒有成功完成,編輯器的進程可能意外終止。輸入
rm .git/.MERGE_MSG.swp
文章來源:http://www.zghlxwxcb.cn/news/detail-635797.html
根據提示修改master
分支下的test.txt文件,重新commit
后顯示[master 2bf0895]表示成功文章來源地址http://www.zghlxwxcb.cn/news/detail-635797.html
$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit (master|MERGING)
$ git add .
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit (master|MERGING)
$ git commit -m 'merge change'
[master 2bf0895] merge change
pengy@LAPTOP-7A77J86V MINGW32 ~/Desktop/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean
到了這里,關于Git基礎知識:常見功能和命令行的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!