說明:
本文所有的操作都是在windows 7 64 位系統上安裝git 進行的操作;git的版本為2.31.1.windows.1
關於git的安裝基本都是下一步;
1.新建代碼庫
1.1在當前目錄新建一個 Git 代碼庫
$ git init
1.2新建一個目錄,將其初始化為 Git 代碼庫
$ git init [project-name]
1.3下載一個項目和它的整個代碼歷史
$ git clone [url]
2.配置
Git 的設置文件為.gitconfig,它可以在用戶主目錄下(全局配置),也可以在項目目錄下(項目配置)。
2.1設置提交代碼時的用戶信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
2.2編輯 Git 配置文件
$ vim ~/.gitconfig
2.3顯示當前的 Git 配置
$ git config --list
2.4顯示當前的 Git 配置
$ cat ~/.gitconfig
3.增加/刪除文件
3.1添加指定文件到暫存區
$ git add [file1] [file2] ...
3.2添加指定目錄到暫存區,包括子目錄
$ git add [dir]
3.3添加當前目錄的所有文件到暫存區
$ git add .
3.4刪除工作區文件,並且將這次刪除放入暫存區
$ git rm 1.txt 2.txt
error: the following files have changes staged in the index:
1.txt
2.txt
(use --cached to keep the file, or -f to force removal)
3.4.1直接刪除文件
$ git rm -fr 1.txt
3.4.2停止追蹤指定文件,但該文件會保留在工作區
$ git rm --cached [file]
$ git rm --cached 1.txt 2.txt
rm '1.txt'
rm '2.txt'
3.5改名文件,並且將這個改名放入暫存區
$ git mv [file-original] [file-renamed]
4.代碼提交
4.1提交暫存區到倉庫區
$ git commit -m [message]
4.2提交暫存區的指定文件到倉庫區
$ git commit [file1] [file2] ... -m [message]
4.3提交工作區自上次 commit 之后的變化,直接到倉庫區
$ git commit -a
4.4提交時顯示所有 diff 信息
$ git commit -v
4.5使用一次新的 commit,替代上一次提交如果代碼沒有任何新變化,則用來改寫上一次 commit 的提交信息
$ git commit --amend -m [message]
5.分支
5.1列出所有本地分支
$ git branch
*表示當前分支
5.2列出所有遠程分支
$ git branch -r
5.3列出所有本地分支和遠程分支
$ git branch -a
5.4新建一個分支,但依然停留在當前分支
$ git branch [branch-name]
5.5新建一個分支,並切換到該分支
$ git checkout -b [branch]
5.6新建一個分支,指向指定 commit
5.6.1查看提交的日志
$ git log
commit 2cb44e585aab4d1b2370a3e42dc6d4070fe217dc (HEAD -> DevOps_RC, origin/master, master, DevOps_Release, DevOps_Dev)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 11:03:12 2021 +0800
修改了ReadMe.md文件,添加了一行說明
commit 89d1d5b198a77deb9096e11b02aec7187221f384
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:59:09 2021 +0800
:...skipping...
commit 2cb44e585aab4d1b2370a3e42dc6d4070fe217dc (HEAD -> DevOps_RC, origin/master, master, DevOps_Release, DevOps_Dev)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 11:03:12 2021 +0800
修改了ReadMe.md文件,添加了一行說明
commit 89d1d5b198a77deb9096e11b02aec7187221f384
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:59:09 2021 +0800
添加User文件夾
commit b54962a30b090f02a39fc3c6185750cf07b068ea
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:58:30 2021 +0800
添加忽略文件
commit e76012d77857841d344ac04893a158e75e8088fc
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:56:46 2021 +0800
添加Readme.md文件
5.6.2新建一個分支,指向指定 commit ID
$ git branch [branch] [commit]
$ git branch DevOps_V0.3FixBug 89d1d5b198a77deb9096e11b02aec7187221f384
5.7新建一個分支,與指定的本地分支建立追蹤關系
$ git branch --track [branch1] [branch2]
$ git branch --track DevOps_RC1 DevOps_RC
5.7.1DevOps_RC,增加一次提交
5.7.2DevOps_RC,再增加一次提交
5.8切換到指定分支,並更新工作區
5.8.1切換到建立追蹤的分支DevOps_RC1
$ git checkout [branch-name]
$ git checkout DevOps_RC1
5.8.2從建立追蹤的分支拉取最新的變化
$ git pull
5.9新建一個分支,與指定的遠程分支建立追蹤關系
5.9.1將本地的所有分支及信息全部推送到遠程倉庫
$ git push -u origin *:*
說明:origin,查看是否配置origin;默認克隆時,自動建立;
5.9.2查看origin信息
$ git remote -v
origin http://192.168.145.88/devops/devops.git (fetch)
origin http://192.168.145.88/devops/devops.git (push)
5.9.3新建一個分支,與指定的遠程分支建立追蹤關系
$ git branch --track [branch] [remote branch]
$ git branch --track DevOps_RC2 remotes/origin/DevOps_RC1
5.9.4切換到建立追蹤關系的新分支DevOps_RC2
$ git checkout DevOps_RC2
Switched to branch 'DevOps_RC2'
Your branch is behind 'origin/DevOps_RC1' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
5.9.5使用 git pull 更新本地分支(會拉取建立追蹤關系的分支代碼)
$ git pull
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
Updating f7ed8ad..c11bb1a
Fast-forward
Readme.md | 1 +
1 file changed, 1 insertion(+)
5.10合並指定分支到當前分支
$ git merge [branch]
$ git merge DevOps_V0.3FixBug
提示文件存在沖突,沖突解決后再提交
5.10.1解決合並產生的沖突
按照沖突提示,修改沖突文件 Readme.md
$ vim Readme.md
5.10.2編輯修改解決沖突
5.10.2.1沖突提示
5.10.2.2沖突解決
5.10.2.3查看當前狀態
$ git status
On branch DevOps_RC1
Your branch is up to date with 'origin/DevOps_RC1'.
You have unmerged paths.#有未合並的分支
(fix conflicts and run "git commit")#修復沖突並且運行git commit
(use "git merge --abort" to abort the merge) #使用 git merge --abort終止合並
Unmerged paths:#未合並的分支
(use "git add <file>..." to mark resolution)
both modified: Readme.md
no changes added to commit (use "git add" and/or "git commit -a")
此處我的處理措施是,把合並結果加入當前分支
5.11選擇一個 commit,合並進當前分支
$ git cherry-pick [commit]
5.11.1選擇別的分支(DevOps_RC1)的一個commit
$ git log
5.11.2切換到另一個項目合並一個提交至此分支的分支
5.11.2.1切換分支(DevOps_Dev)
$ git checkout DevOps_Dev
Switched to branch 'DevOps_Dev'
Your branch is up to date with 'origin/DevOps_Dev'.
5.11.2.2將選定的commit,合並進當前分支
$ git cherry-pick 900d39d30f2487897c1fc09f71c4bd41e1c0cf7a
5.11.2.3查看當前狀態
$ git status
5.11.2.4解決沖突
5.12刪除分支
$ git branch -d [branch-name]
5.13刪除遠程分支
5.13.1查看當前分支的詳細信息
$ git branch -av
5.13.2刪除遠程分支
$ git push origin --delete DevOps_RC2
可以看到遠程的此分支已經刪除了
可以看到遠程的此分支已經刪除了
5.13.3 刪除遠程分支
$ git branch -dr remotes/origin/DevOps_RC1
$ git branch -av
6.標簽
6.1列出所有 tag
$ git tag
$ git tag -l
DevOps_Dev_V1.0
Dev_V1.0
V0.3FixBug
$ git tag --list
DevOps_Dev_V1.0
Dev_V1.0
V0.3FixBug
6.2新建一個 tag 在當前 commit
$ git tag [tag]
$ git tag V0.3FixBug
6.3新建一個 tag 在指定 commit
$ git tag [tag] [commit] -m [message]
$ git tag Dev_V1.0 89d1d5b198a77deb9096e11b02aec7187221f384 -m "初始開發基線"
6.4新建一個tag在當前commit,提交信息為:文件內容
$ git tag DevOps_Dev_V1.0 -F ReleaseNotes.md
6.5查看 tag 信息
$ git show [tag]
$ git show DevOps_Dev_V1.0
6.6提交指定 tag到遠程倉庫
$ git push [remote] [tag]
$ git push origin V0.3FixBug
6.7提交所有 tag
$ git push [remote] --tags
$ git push origin --tags
6.8基於某個tag創建分支並切換至該分支
$ git checkout -b [branch] [tag]
$ git checkout -b DevOps_RC3 V0.3FixBug
7.查看信息
7.1顯示有變更的文件
$ git status
On branch DevOps_Dev
Your branch is up to date with 'origin/DevOps_Dev'.
You are currently cherry-picking commit 900d39d.
(fix conflicts and run "git cherry-pick --continue")
(use "git cherry-pick --skip" to skip this patch)
(use "git cherry-pick --abort" to cancel the cherry-pick operation)
Unmerged paths:
(use "git add/rm <file>..." as appropriate to mark resolution)
deleted by us: 3.txt
no changes added to commit (use "git add" and/or "git commit -a")
7.2顯示當前分支的版本歷史
$ git log
commit 2cb44e585aab4d1b2370a3e42dc6d4070fe217dc (HEAD -> DevOps_Dev, origin/master, origin/DevOps_Release, origin/DevOps_Dev, master, DevOps_Release)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 11:03:12 2021 +0800
修改了ReadMe.md文件,添加了一行說明
commit 89d1d5b198a77deb9096e11b02aec7187221f384 (origin/DevOps_V0.3FixBug)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:59:09 2021 +0800
添加User文件夾
commit b54962a30b090f02a39fc3c6185750cf07b068ea
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:58:30 2021 +0800
添加忽略文件
commit e76012d77857841d344ac04893a158e75e8088fc
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:56:46 2021 +0800
添加Readme.md文件
7.3顯示 commit 歷史,以及每次 commit 發生變更的文件
$ git log --stat
commit 1c6e4116363e0dce9a931eeaad1d1dcd470bb673 (HEAD -> DevOps_RC3, tag: V0.3FixBug, origin/DevOps_V0.3FixBug, DevOps_V0.3FixBug)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 14:07:01 2021 +0800
修復了V0.3FixBug
Readme.md | 1 +
1 file changed, 1 insertion(+)
commit 89d1d5b198a77deb9096e11b02aec7187221f384 (tag: Dev_V1.0)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:59:09 2021 +0800
添加User文件夾
Users/Wahaha.Framework.Service.Users/Encryption.cs | 100 ++
Users/Wahaha.Framework.Service.Users/Group.cs | 215 ++++
Users/Wahaha.Framework.Service.Users/IUser.cs | 86 ++
.../IUserClientService.cs | 152 +++
.../Wahaha.Framework.Service.Users.csproj | 97 ++
.../Properties/AssemblyInfo.cs | 36 +
Users/Wahaha.Framework.Service.Users/User.cs | 266 +++++
Users/Wahaha.Framework.Service.Users/UserClient.cs | 16 +
.../UserClientService.cs | 901 +++++++++++++++
.../Wahaha.Framework.Service.Users/UserContract.cs | 207 ++++
Users/Wahaha.Framework.Service.Users/UserServer.cs | 1171 ++++++++++++++++++++
.../DesignTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6960 bytes
...ework.Service.Users.csproj.FileListAbsolute.txt | 6 +
...vice.Users.csprojResolveAssemblyReference.cache | Bin 0 -> 22983 bytes
.../obj/Debug/Wahaha.Framework.Service.Users.dll | Bin 0 -> 38912 bytes
commit 1c6e4116363e0dce9a931eeaad1d1dcd470bb673 (HEAD -> DevOps_RC3, tag: V0.3FixBug, origin/DevOps_V0.3FixBug, DevOps_V0.3FixBug)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 14:07:01 2021 +0800
修復了V0.3FixBug
Readme.md | 1 +
1 file changed, 1 insertion(+)
commit 89d1d5b198a77deb9096e11b02aec7187221f384 (tag: Dev_V1.0)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:59:09 2021 +0800
添加User文件夾
Users/Wahaha.Framework.Service.Users/Encryption.cs | 100 ++
Users/Wahaha.Framework.Service.Users/Group.cs | 215 ++++
Users/Wahaha.Framework.Service.Users/IUser.cs | 86 ++
.../IUserClientService.cs | 152 +++
.../Wahaha.Framework.Service.Users.csproj | 97 ++
.../Properties/AssemblyInfo.cs | 36 +
Users/Wahaha.Framework.Service.Users/User.cs | 266 +++++
Users/Wahaha.Framework.Service.Users/UserClient.cs | 16 +
.../UserClientService.cs | 901 +++++++++++++++
.../Wahaha.Framework.Service.Users/UserContract.cs | 207 ++++
Users/Wahaha.Framework.Service.Users/UserServer.cs | 1171 ++++++++++++++++++++
.../DesignTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6960 bytes
...ework.Service.Users.csproj.FileListAbsolute.txt | 6 +
...vice.Users.csprojResolveAssemblyReference.cache | Bin 0 -> 22983 bytes
.../obj/Debug/Wahaha.Framework.Service.Users.dll | Bin 0 -> 38912 bytes
.../obj/Debug/Wahaha.Framework.Service.Users.pdb | Bin 0 -> 77312 bytes
...tedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0
...tedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0
...tedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0
.../GroupTests.cs | 51 +
.../Wahaha.Framework.Service.UsersTests.csproj | 99 ++
.../Properties/AssemblyInfo.cs | 36 +
.../DesignTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6571 bytes
....Service.UsersTests.csproj.FileListAbsolute.txt | 17 +
...UsersTests.csprojResolveAssemblyReference.cache | Bin 0 -> 38740 bytes
.../Debug/Wahaha.Framework.Service.UsersTests.dll | Bin 0 -> 5120 bytes
.../Debug/Wahaha.Framework.Service.UsersTests.pdb | Bin 0 -> 11776 bytes
...tedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0
...tedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0
...tedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0
30 files changed, 3456 insertions(+)
commit b54962a30b090f02a39fc3c6185750cf07b068ea
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:58:30 2021 +0800
添加忽略文件
.gitignore | 1 +
1 file changed, 1 insertion(+)
commit e76012d77857841d344ac04893a158e75e8088fc
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:56:46 2021 +0800
添加Readme.md文件
Readme.md | 1 +
1 file changed, 1 insertion(+)
(END)
7.4顯示某個文件的版本歷史,包括文件改名
$ git log --follow [file]
$ git log --follow Readme.md
commit 1c6e4116363e0dce9a931eeaad1d1dcd470bb673 (HEAD -> DevOps_RC3, tag: V0.3FixBug, origin/DevOps_V0.3FixBug, DevOps_V0.3FixBug)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 14:07:01 2021 +0800
修復了V0.3FixBug
commit e76012d77857841d344ac04893a158e75e8088fc
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:56:46 2021 +0800
添加Readme.md文件
$ git whatchanged [file]
$ git whatchanged Readme.md
commit 1c6e4116363e0dce9a931eeaad1d1dcd470bb673 (HEAD -> DevOps_RC3, tag: V0.3FixBug, origin/DevOps_V0.3FixBug, DevOps_V0.3FixBug)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 14:07:01 2021 +0800
修復了V0.3FixBug
:100644 100644 6c1b17d 82f1ecb M Readme.md
commit e76012d77857841d344ac04893a158e75e8088fc
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:56:46 2021 +0800
添加Readme.md文件
:000000 100644 0000000 6c1b17d A Readme.md
7.5顯示指定文件相關的每一次 diff
$ git log -p [file]
$ git log -p Readme.md
commit 1c6e4116363e0dce9a931eeaad1d1dcd470bb673 (HEAD -> DevOps_RC3, tag: V0.3FixBug, origin/DevOps_V0.3FixBug, DevOps_V0.3FixBug)
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 14:07:01 2021 +0800
修復了V0.3FixBug
diff --git a/Readme.md b/Readme.md
index 6c1b17d..82f1ecb 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1 +1,2 @@
this is my first add
+修改了V0.3FixBug的Bug
commit e76012d77857841d344ac04893a158e75e8088fc
Author: zhangsan <zhangsan@263.com>
Date: Sat Jul 10 10:56:46 2021 +0800
添加Readme.md文件
diff --git a/Readme.md b/Readme.md
new file mode 100644
index 0000000..6c1b17d
--- /dev/null
+++ b/Readme.md
@@ -0,0 +1 @@
+this is my first add
7.6顯示指定文件是什么人在什么時間修改過
$ git blame [file]
$ git blame Readme.md
7.7顯示暫存區和上一個 commit 的差異
$ git diff --cached []
$ git diff --cached 89d1d5b198a77deb9096e11b02aec7187221f384
**不寫commitID 默認是最新的commit ID **
7.8顯示工作區與當前分支最新 commit 之間的差異
$ git diff HEAD
7.9顯示兩個分支之間的差異
$ git diff [first-branch]...[second-branch]
$ git diff DevOps_RC3 DevOps_Dev
diff --git a/3.txt b/3.txt
new file mode 100644
index 0000000..13137df
--- /dev/null
+++ b/3.txt
@@ -0,0 +1 @@
+我想測試一下cherry-pick [commit]
diff --git a/Readme.md b/Readme.md
index 561f60a..8b12de6 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,3 +1,2 @@
this is my first add
-修改了V0.3FixBug的Bug
diff --git a/3.txt b/3.txt
new file mode 100644
index 0000000..13137df
--- /dev/null
+++ b/3.txt
@@ -0,0 +1 @@
+我想測試一下cherry-pick [commit]
diff --git a/Readme.md b/Readme.md
index 561f60a..8b12de6 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,3 +1,2 @@
this is my first add
-修改了V0.3FixBug的Bug
-測試一下git diff
+this is my first commit -a
diff --git a/ReleaseNotes.md b/ReleaseNotes.md
new file mode 100644
index 0000000..1a4e89a
--- /dev/null
+++ b/ReleaseNotes.md
@@ -0,0 +1,26 @@
+Version:(Dev_v1.0)
+
+Introduction:
+ welcome to use NCF package , using it , you can develop your personal control-application code quickly.
+
+ more information http://www.devops.com
+
+ this version is from V0.3FixBug
+
+
+System Requirements:
+ - CPU: 2C
+ - OS: windows7 64位
+ - Memory: 1G
+ - Hard-disk: 40G
+ - Others:
+Runtime Environment
+
+V0.3FixBug
+ - 修改Demo程序bug
+
+Dev_v1.0
+ - 建立DevOps平台項目
+ - 建立DevOps項目
+ - 需要.netframework4.6.1支持
+ - 需要mysqlV5.1.5支持
(END)
7.10顯示兩次commit之間的差異
$ git diff 304db4dfdd ab794ed848
7.11顯示某次提交的元數據和內容變化
$ git show [commit]
$ git show ab794ed848f8cbe0f4b1be065555f5e0b1124d5d
7.12顯示某次提交發生變化的文件
$ git show --name-only [commit]
$ git show --name-only b54962a30
7.13顯示某次提交時,某個文件的內容
$ git show [commit]:[filename]
$ git show 304db4dfdd:Readme.md
7.14顯示所有的提交
$ git reflog
8.遠程同步
8.1拉取遠程倉庫的所有變動
$ git fetch [remote]
$ git fetch origin
8.2顯示所有遠程倉庫
$ git remote -v
8.3顯示某個遠程倉庫的信息
$ git remote show [remote]
$ git remote show origin
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
* remote origin
Fetch URL: http://192.168.145.89/devops/devops.git
Push URL: http://192.168.145.89/devops/devops.git
HEAD branch: master
Remote branches:
DevOps_Dev tracked
DevOps_RC tracked
DevOps_RC1 tracked
DevOps_RC3 tracked
DevOps_Release tracked
DevOps_V0.3FixBug tracked
master tracked
Local branches configured for 'git pull':
DevOps_Dev merges with remote DevOps_Dev
DevOps_RC merges with remote DevOps_RC
DevOps_RC1 merges with remote DevOps_RC1
DevOps_RC2 merges with remote DevOps_RC1
DevOps_Release merges with remote DevOps_Release
DevOps_V0.3FixBug merges with remote DevOps_V0.3FixBug
master merges with remote master
Local refs configured for 'git push':
DevOps_Dev pushes to DevOps_Dev (up to date)
DevOps_RC pushes to DevOps_RC (up to date)
DevOps_RC1 pushes to DevOps_RC1 (up to date)
DevOps_RC3 pushes to DevOps_RC3 (fast-forwardable)
DevOps_Release pushes to DevOps_Release (up to date)
DevOps_V0.3FixBug pushes to DevOps_V0.3FixBug (up to date)
master pushes to master (up to date)
8.4增加一個新的遠程倉庫,並命名
$ git remote add [shortname] [url]
$ git remote add DevOps_MaTest http://192.168.145.89/devops/devops_matest.git
$ git remote -v
DevOps_MaTest http://192.168.145.89/devops/devops_matest.git (fetch)
DevOps_MaTest http://192.168.145.89/devops/devops_matest.git (push)
origin http://192.168.145.89/devops/devops.git (fetch)
origin http://192.168.145.89/devops/devops.git (push)
8.5取回遠程倉庫另一分支的變化,並與本地分支進行合並
$ git pull [remote] [branch]
8.5.1合並之前DevOps_RC1文件信息展示
cat Readme.md
8.5.2切換至要從遠端倉庫拉取的另一分支DevOps_V0.3FixBug進行編輯修改
8.5.3將修改推送到遠程倉庫
$ git push origin DevOps_V0.3FixBug:DevOps_V0.3FixBug
8.5.4切換至要拉取此分支的分支
$ git checkout DevOps_RC1
8.5.6拉取另一分支的最新變化至本地的當前分支
$ git pull origin DevOps_V0.3FixBug
看到括號內的變化(DevOps_RC1|MERGING)表示正在進行合並操作,此時需要查看當前分支的狀態,使用git status
8.5.7查看當前分支的合並狀態
$ git status
8.5.8根據提示解決當前合並沖突
$ git commit -m "DevOps_V0.3FixBug分支合並至DevOps_RC1"
8.6上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]
$ git push origin DevOps_V0.3FixBug:DevOps_V0.3FixBug
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 414 bytes | 103.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: To create a merge request for DevOps_V0.3FixBug, visit:
remote: http://192.168.145.89/devops/devops/-/merge_requests/new?merge_request%5Bsource_branch%5D=DevOps_V0.3FixBug
remote:
To http://192.168.145.89/devops/devops.git
1c6e411..69d2d0f DevOps_V0.3FixBug -> DevOps_V0.3FixBug
8.7強行推送當前分支到遠程倉庫,即使有沖突
$ git push [remote] --force
8.7.1查看當前遠程分支DevOps_Dev文件信息
8.7.2切換至要推送的當前分支DevOps_RC1查看文件信息
通過8.7.1和8.7.2的兩幅圖的對比,發現此文件的第三行存在沖突;
8.7.3強行推送當前分支DevOps_RC1至遠程分支DevOps_Dev
$ git push origin DevOps_RC1:DevOps_Dev --force
$ git push origin DevOps_RC1:DevOps_Dev --force
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 383 bytes | 127.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote:
remote: To create a merge request for DevOps_Dev, visit:
remote: http://192.168.145.89/devops/devops/-/merge_requests/new?merge_request%5Bsource_branch%5D=DevOps_Dev
remote:
To http://192.168.145.89/devops/devops.git
+ 3d9be30...0cedce7 DevOps_RC1 -> DevOps_Dev (forced update)
8.7.4 切換到DevOps_Dev
$ git checkout DevOps_Dev
8.7.5 按照提示拉取最新的分支信息與本地進行合並
$git pull
8.7.6查看當前分支DevOps_Dev的狀態
$ git status
按照提示解決所有沖突,並提交;
8.7.7進行比較(當前分支的文件與遠程倉庫拉取下來的文件做比較)
8.7.8沖突解決
8.7.9按照提示進行提交和推送
8.8推送所有分支到遠程倉庫
$ git push [remote] --all
8.8.1新建分支4,5,6
$ git branch DevOps_RC4
$ git branch DevOps_RC5
$ git branch DevOps_RC6
8.8.2查看當前的遠程分支
$ git branch -r
8.8.3 推送所有新建分支到遠程倉庫
$ git push origin --all
8.8.4 查看遠程分支
$ git branch -r
9.撤銷
9.1版本回滾
$ git checkout [commit]
$ git checkout 3c37654e45fa5d0585b676cd7e66d01651e63ccc
Note: switching to '3c37654e45fa5d0585b676cd7e66d01651e63ccc'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 3c37654 添加了需求規格說明書
9.2基於當前的commit 創建分支並進行跳轉
$ git switch -c temp
9.3重置暫存區與工作區,與上一次 commit 保持一致
$ git reset --hard
9.4重置當前分支的指針為指定 commit,同時重置暫存區,但工作區不變
$ git reset [commit]
$ git reset f1a4a707f9cb
9.5重置當前分支的 HEAD 為指定 commit,同時重置暫存區和工作區,與指定 commit 一致
$ git reset --hard [commit]
$ git reset --hard 3c37654e45fa
9.6重置當前 HEAD 為指定 commit,但保持暫存區和工作區不變
$ git reset --keep [commit]
$ git reset --keep 6771f4be20d7
======================================================================
創作不易,本人熱衷開源共享 《Git常用命令超級詳細》
======================================================================