为什么特定分支中的新创建文件在master中表示出来

时间:2013-10-06 12:52:59

标签: git git-branch

Git系统新手。事实上,在我当地的回复中,我做了以下行动:

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

在这里我想知道为什么文件“test.txt”在master分支中显示出来了?!!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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文件。

答案 2 :(得分:0)

您在新分行时错过了将文件添加到git的权限。您的实际步骤应该是

  1. 创建并切换到新分支
  2. 创建一个新文件“test.txt”
  3. 将新文件添加到git
  4. 提交更改
  5. 切换到主分支
  6. 将文件添加到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