【发布时间】:2022-11-28 08:11:18
【问题描述】:
这个简单的工作流程会发生什么:
x@PC MINGW64 /c/Temp/tests/git/branches/changes
$ git init
Initialized empty Git repository in C:/Temp/tests/git/branches/changes/.git/
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ echo "CHANGE #1" >> test.txt
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ git add test.txt
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ git commit -m "."
[master (root-commit) 439c0f8] .
1 file changed, 1 insertion(+)
create mode 100644 test.txt
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ git branch branch-1
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ echo "CHANGE #2" >> test.txt
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ cat test.txt
CHANGE #1
CHANGE #2
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ git switch branch-1
Switched to branch 'branch-1'
M test.txt
x@PC MINGW64 /c/Temp/tests/git/branches/changes (branch-1)
$ git add test.txt
x@PC MINGW64 /c/Temp/tests/git/branches/changes (branch-1)
$ git commit -m "."
[branch-1 4c62bc9] .
1 file changed, 1 insertion(+)
x@PC MINGW64 /c/Temp/tests/git/branches/changes (branch-1)
$ git switch master
Switched to branch 'master'
x@PC MINGW64 /c/Temp/tests/git/branches/changes (master)
$ cat test.txt
CHANGE #1
用词:
- 在
master中工作时创建一个带有“CHANGE #1”的文件 - 添加并提交
- 创建另一个分支
branch-1 - 添加“CHANGE #2”进行另一项更改
- 切换到
branch-1 - 添加并提交文件
- 切换回
master
(创建分支和进行第二次更改的顺序似乎没有任何重要性)
我很惊讶:
- 在
branch-1中看到“在master的上下文中”所做的本地更改 - 切换回
master时不再看到更改
所以我有两个问题:
- 当切换到
branch-1时,本地更改未受影响,因此它们与master没有关联,但似乎只是被 Git 忽略了,这种行为记录在哪里? - 从
branch-1提交更改并切换回master后,第二个更改从master不再可见:总的来说,更改已在branch-1上捕获,确切的术语是什么(快照)?
【问题讨论】:
标签: git branch git-branch