簡體   English   中英

如何將代碼從另一個分支推送到存儲庫

[英]How to push code to repository from another branch

我的存儲庫中有兩個分支: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但是有我不想擁有的文件。 我究竟做錯了什么?

提前致謝。

添加和推送.gitignore並不意味着要自動刪除要插入的文件。 它們在branch2被切斷之前(在branch1提交時)被提交,因此當你切割branch2時,它們被包括在內。

你需要git-rm這些文件一次,推送到遠程倉庫,然后希望將被git忽略。

如果文件已經版本化,則添加.gitignore將不會刪除它們。 你必須從git中刪除它們

git rm --cached file //包含你想要的文件

gitignore現在會阻止他們添加。

所以這些一步一步這樣做:

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

  2. 然后通過使用命令運行git rm刪除所有文件:git rm。 這樣您就可以將其從branch2中刪除。 記住它不會影響你的branch1。

  3. 然后提交並將更改推送到branch2。

  4. 現在只需從branch1復制所有這些不需要的文件,然后將它們添加到branch2。

  5. 現在你的gitignore將會出現,並且既不會要求你提交這些文件,也不會要求他們將這些文件推送到遠程存儲庫。 此后對這些文件所做的任何更改都將被忽略。

.gitignore列出的文件和路徑意味着即使它們存在(或不存在)也不會被跟蹤,即使你創建了新的分支,git也不會關心,因為它們被忽略了

.gitignore是分支機構之間共享的配置文件

我想你想要的是刪除被忽略的文件和目錄(在.gitignore中列出)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM