0

是 Git 系统的新手。事实上,在我的本地存储库中,我做了以下操作:

  • 创建新分支
  • 搬到新的分支
  • 创建一个新文件“test.txt”
  • 切换到主分支

在这里我想知道为什么文件“test.txt”会出现在主分支中?!

4

3 回答 3

2

原因是,您还没有将文件提交到任何一个分支。

Git 只能对分支中正在跟踪的文件进行版本控制。

所以你需要做的是

cd ~/Desktop/test
mkdir git_repo && cd git_repo
git init

有了上面,我们已经创建了一个 repo,现在需要添加分支。Git 将分支表示为指向该分支中最新提交的指针。如果您还没有创建提交,那么该分支就没有任何东西可以指向。因此,在您至少有一次提交之前,您无法真正创建分支。所以让我们创建一个提交。

touch testfile1 testfile2
git add testfile1
git commit -m "added testfile1"

现在结帐到一个新分支并在这个新分支中添加另一个测试文件

git checkout -b new
git add testfile2
git commit -m "added testfile2"

请注意,testfile1 也将在此分支中被跟踪,因为我使用了该-b标志。

如果现在您ls在此分支中执行操作,然后签出到原始分支并ls再次执行,您将看不到testfile2那里。

ls
git checkout master
ls
于 2013-10-06T13:18:07.503 回答
0

我不太确定你是否正确地完成了所有步骤。创建分支的步骤如下:

在本地机器上创建分支:

$ git branch <name_of_your_new_branch>

在 github 上推送分支:

$ git push origin <name_of_your_new_branch>

切换到您的新分支:

$ git checkout <name_of_your_new_branch>

添加您的文件:

$ git add <name_of_your_file>

提交您的文件:

git commit -m "<your_comment_goes_here>"

然后,您只需要将您的推test.txt送到您的新分支:

git push <name_of_your_new_brach>

请注意,当您执行 时git push,您必须指定一个分支。如果没有,它通常会推送到您的origin分支。

如果你已经完成了我上面提到的步骤,你应该不会test.txt在你的 master 分支中看到该文件。

于 2013-10-06T12:58:09.800 回答
0

git当您在新分支上时,您错过了添加文件。您的实际步骤应该是

  1. 创建并切换到新分支
  2. 创建一个新文件“test.txt”
  3. 将新文件添加到 git
  4. 提交更改
  5. 切换到主分支

将文件添加到 git 很重要,否则如果您切换分支、还原更改等,它将被忽略。以下命令会产生您想要的行为。请注意,您需要master在创建新分支之前提交一些内容。

git checkout -b new-branch
echo test > test.txt
git add test.txt
git commit -m "Added a test file"
git checkout master
于 2013-10-06T13:20:44.363 回答