如何为新项目创build一个新的空分支

我们正在使用git存储库来存储我们的项目。 我们有我们的分支从原来的分支。 但是现在我们要创build一个小的新项目来跟踪一些文档。 为此,我们希望创build一个新的空分支来开始存储我们的文件,并且我希望networking的其他用户克隆该分支。

我们怎么做到这一点?

我尝试了一些东西,但他们没有工作。

$ mkdir proj_doc; cd proj_doc $ git init $ git add . $ git commit -m 'first commit' $ git br proj_doc $ git co proj_doc $ git br -d master $ git push origin proj_doc 

它似乎推动分支好,但是当我做一个取或拉,它从其他分支下载信息,然后我也从其他项目中获得一些额外的文件。 什么是最好的解决scheme?

你可以创build一个孤立的分支:

 git checkout --orphan <branchname> 

这将创build一个没有父母的新分支。 然后,您可以使用以下命令清除工作目录:

 git rm --cached -r . 

并添加文档文件,提交他们,并把他们推到github。

拉或取将始终更新有关所有远程分支的本地信息。 如果您只想为单个远程分支提取/获取信息,则需要指定它。

正确的答案是创build一个孤儿分支。 我解释了如何在我的博客上详细说明: http : //sidja.in/post/62663941071

开始之前,升级到最新版本的GIT。 为了确保您正在运行最新版本,请运行

 which git 

如果它吐出旧版本,则可能需要使用包含刚安装的版本的文件夹来扩充PATH。

好的,我们已经准备好了。 在进入包含你的git checkout的文件夹之后,创build一个孤立分支。 在这个例子中,我将命名分支“mybranch”。

 git checkout --orphan mybranch 

删除孤立分支中的所有内容

 git rm -rf . 

做一些改变

 vi README.txt 

添加并提交更改

 git add README.txt git commit -m "Adding readme file" 

而已。 如果你跑步

 git log 

你会注意到提交历史从头开始。 要切换回您的主分支,只需运行

 git checkout master 

您可以通过运行返回到孤立分支

 git checkout mybranch 

像这样做一个空的新分支:

 true | git mktree | xargs git commit-tree | xargs git branch proj-doc 

如果你的proj-doc文件已经在一个subdir下的提交中,你可以这样做新的分支:

 git commit-tree thatcommit:path/to/dir | xargs git branch proj-doc 

这可能比git branch --orphan更方便 – 如果这会让你有很多git rmgit mv做的话。

尝试

 git branch --set-upstream proj-doc origin/proj-doc 

看看是否有助于你的取材 – 太多的问题。 另外,如果你真的只想获取一个分支,只要在命令行中指定它就是最安全的。

如果git版本没有–orphan选项,则应该使用此方法;

 git symbolic-ref HEAD refs/heads/<newbranch> rm .git/index git clean -fdx 

做了一些工作后

 git add -A git commit -m <message> git push origin <newbranch> 

假设你有一个带有文件/目录的主分支:

git分支

ls -la(您可以保留在主文件中的文件和目录)

.git directory1 directory2 file_1 .. file_n

一步一步如何做一个空的分支:

  1. git checkout –orphan new_branch_name
  2. 在执行以下命令之前,请确保您位于正确的目录中:ls -la | awk'{print $ 9}'| grep -v git | xargs -I _ rm -rf ./_
  3. git rm -rf。
  4. 触摸new_file
  5. git添加new_file
  6. git commit -m'在新分支中添加第一个文件'
  7. git push origin new_branch_name

在第二步中,我们简单地删除所有的文件,以避免混淆新分支上的文件以及你保留在“主”分支上的文件。 然后,我们在步骤3中取消所有这些文件的链接。从第4步开始,我们正在使用新的空分支。

完成之后,您可以轻松地在您的分支机构之间切换:

git checkout master git checkout new_branch