国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Git基礎知識:常見功能和命令行

這篇具有很好參考價值的文章主要介紹了Git基礎知識:常見功能和命令行。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


參考:
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

Git基礎知識:常見功能和命令行,開發(fā)工具,git
Git基礎知識:常見功能和命令行,開發(fā)工具,git

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 addgit commit將該文件提交到倉庫。add告訴Git,將文件添加到倉庫,可以反復使用,添加多個文件,commit將文件提交到倉庫,-m是本次提交的說明。執(zhí)行成功后會顯示 1 file changed(一個文件被改動),2 insertions(+)(插入了兩行內容)(readme.txt里的兩行內容)。設置addcommit兩步是因為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基礎知識:常見功能和命令行,開發(fā)工具,git
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。
Git基礎知識:常見功能和命令行,開發(fā)工具,git
比如在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指針不變。
Git基礎知識:常見功能和命令行,開發(fā)工具,git
Git基礎知識:常見功能和命令行,開發(fā)工具,git
Git基礎知識:常見功能和命令行,開發(fā)工具,git
如下:創(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

根據提示修改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模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Linux常見指令和基礎知識

    Linux常見指令和基礎知識

    從這一章開始我們就要正式的進入我們的Linux的學習了,在正式學習之前我們要先熟悉一下Linux的操作和一些基礎知識吧。 語法: ls [選項][目錄或文件] 功能:對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息。 常用選項: 操作演示

    2024年02月07日
    瀏覽(22)
  • CSS 基礎拾遺(核心知識、常見需求)

    CSS 基礎拾遺(核心知識、常見需求)

    本篇文章圍繞了 CSS 的核心知識點和項目中常見的需求來展開。雖然行文偏長,但較基礎,適合初級中級前端閱讀,閱讀的時候請適當跳過已經掌握的部分。 這篇文章斷斷續(xù)續(xù)寫了比較久,也參考了許多優(yōu)秀的文章,但或許文章里還是存在不好或不對的地方,請多多指教,可

    2023年04月21日
    瀏覽(26)
  • 音頻基礎知識(一) 音頻基礎概念 | 采樣 | 量化 | 編碼 | 常見音頻格式

    音頻基礎知識(一) 音頻基礎概念 | 采樣 | 量化 | 編碼 | 常見音頻格式

    ?? 個人簡介:CSDN「 博客新星 」TOP 10 , C/C++ 領域新星創(chuàng)作者 ?? 作 ?? 者: 錫蘭_CC ?? ?? 專 ?? 欄: 【音視頻基礎知識】 ?? 若有幫助,還請 關注?點贊?收藏 ,不行的話我再努努力?????? ??聲音的三要素:頻率、振幅、波形。 1、頻率 ??聲波的頻率,也就是

    2024年03月22日
    瀏覽(22)
  • 軟件測試常見基礎知識面試題

    軟件測試常見基礎知識面試題

    為了發(fā)現程序中的錯誤而執(zhí)行程序的過程 1)需求調查 2)制定初步的項目計劃 3)測試準備 4)測試設計 5)測試實施 6)測試評估 單元測試、集成測試、確認測試、系統測試、驗收測試 單元測試:是用來對一個模塊,一個函數或者一個類來進行正確性檢驗的測試工作 集成測

    2024年02月12日
    瀏覽(33)
  • [git] git基礎知識

    [git] git基礎知識

    git是一個免費的、開源的 分布式版本控制系統 ,可以快速高效地處理從小型到大型的各種項目 git易于學習,性能極快 什么是版本控制? 版本控制是一種記錄文件內容變化,以便將來查閱特定版本修訂情況,可以記錄文件修改歷史記錄,從而讓用戶能夠查看歷史版本,方便

    2024年02月08日
    瀏覽(25)
  • 數模電路基礎知識 —— 4. 常見電路符號說明(二極管)

    數模電路基礎知識 —— 4. 常見電路符號說明(二極管)

    普通的二極管的定義是正向導通,反向截止,和電阻器相似,由于設計物理結構不同,或摻雜稀土材料不同,在普通的二極管基礎上,還衍生出了諸如光電二極管、齊納二極管等特殊的二極管。 先說比較常見的幾種: 符號 名稱 說明 普通二極管(Diode) 對電流能夠單向截止

    2024年02月07日
    瀏覽(22)
  • 網絡基礎知識:了解網絡協議的組成和常見的網絡協議

    網絡基礎知識,了解網絡協議的組成和常見的網絡協議 1、協議及協議棧的基本概念 1.1、什么是協議 協議是網絡中計算機或設備之間進行通信的一系列規(guī)則的集合。常用協議有IP、TCP、HTTP、POP3、SMTP等。 1.2、什么是協議棧 在網絡中,為了完成通信,必須使用多層上的多種協

    2024年02月07日
    瀏覽(31)
  • 【計算機基礎知識9】前端設計模式與常見類型

    【計算機基礎知識9】前端設計模式與常見類型

    目錄 一、前言 二、設計模式的基本概念和原則 三、創(chuàng)建型設計模式 四、結構型設計模式 五、行為型設計模式 六、MVC和MVVM框架中的設計模式 七、實際應用案例分析 在軟件開發(fā)領域,設計模式是一種解決常見問題的最佳實踐,它可以幫助開發(fā)者在面對不斷變化的需求和環(huán)境

    2024年02月09日
    瀏覽(21)
  • Git 基礎知識

    Git 基礎知識

    git --version git init? ?(需要在準備建的倉庫的目標文件夾根目錄下運行) 初始化一個倉庫供所有其他人一起使用,平時一般都是建好的,個人克隆拉取這個倉庫到本地進行編輯。 初始化會產生一個默認分支叫 master? 初始化完會有一個隱藏目錄 GIT核心配置在目錄下的? .git/

    2024年02月09日
    瀏覽(15)
  • 【ASP.NET Core 基礎知識】--安全性--防范常見攻擊

    在現實網絡中即存在著安全的流量,又存在著不安全的流量在,這些不安全的流量常常會對我們的網站服務造成威脅,嚴重的甚至會泄露用戶的隱私信息。這篇文章我們通過對常見的網絡攻擊 跨站腳本攻擊 、 跨站請求偽造(CSRF) 、 SQL注入 、 敏感數據泄露 、 身份驗證與授權

    2024年02月20日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包