如何将代码从另一个分支推送到存储库

时间:2016-08-25 13:14:48

标签: git bitbucket

我的存储库中有两个分支:branch1和branch2(此处不需要master)。

在branch1上我有我的代码,但是整个项目都有不需要的文件,所以我决定创建新分支,添加.gitignore并包含我不需要的目录和文件,然后将其推入branch2只包含src目录,gradle.build和.gitignore。

我使用GitBash并按顺序执行:

git checkout -b branch2 //to create branch
git add --all //to add all files (.gitignore should exclude no needed files)
git commit -m "message"
git push -u origin branch2

然后我在bitbucket上输入我的存储库,并且有一个branch2但是有我不想拥有的文件。我做错了什么?

提前致谢。

4 个答案:

答案 0 :(得分:0)

添加和推送.gitignore并不意味着要自动删除要插入的文件。它们在branch2被删除之前被提交(在branch1提交时),因此当你切割branch2时它们被包括在内。

你需要git-rm这些文件一次,推送到远程仓库,然后希望将被git忽略。

答案 1 :(得分:0)

如果文件已经版本化,则添加.gitignore不会删除它们。你必须从git中删除它们

git rm --cached file //带文件你想要什么

gitignore现在会阻止他们添加。

答案 2 :(得分:0)

这样一步一步地这样做:

  1. 使用相同的命令创建一个新的branch2:git checkout -b branch2

  2. 然后通过使用命令运行git rm删除所有文件:git rm。这样您就可以将其从branch2中删除。请记住,它不会影响您的branch1。

  3. 然后提交并将更改推送到branch2。

  4. 现在只需从branch1复制所有不需要的文件,然后将它们添加到branch2。

  5. 现在您的gitignore将会出现,并且既不会要求您提交这些文件,也不会要求他们将这些文件推送到远程存储库。此后对这些文件所做的任何更改都将被忽略。

答案 3 :(得分:0)

.gitignore中列出的

文件和路径意味着即使它们存在(或不存在)也不会被跟踪,即使您创建新分支,git也不会关心,因为它们被忽略< /强>

.gitignore是分支

中的配置文件共享

我认为你想要的是删除被忽略的文件和目录(在.gitignore中列出)

on branch1 or branch2: git clean -xfd 
on branch1 or branch2: git push