说我有:
Node
我想将(提交5)推送到不同的repo而不提交2,3,4。这可能吗?
我之所以需要它:
我有两个项目:
在处理我的(Project-1)时,我可能需要对(Starter)进行一些更改。
我目前拥有的是2个遥控器(Project-1):
No implicit format for Option[Seq[Node]] available.
[error] implicit lazy val formatter = Json.format[Node]
指向私有(Project-1)存储库。Commit 5 < HEAD
Commit 4
Commit 3
Commit 2
Commit 1
指向开源(Starter)存储库。通常在(Project-1)工作时,我将所有提交都推送到原始主分支。
但是,当我对(Starter)进行更改时,我单独提交它们,并尝试将该特定提交origin
推送到(Starter)存储库。这工作正常!使用starter
。
但问题是,当我按Commit 5
时,它也会推送所有先前的提交(2,3,4),在我的情况下,它与(Project-1)相关。
逻辑上是否可以仅推送特定提交,即使它不是最后一个提交。示例将git push starter c78d92e32ec1a:master
与(Starter)repo。
答案 0 :(得分:2)
Git非常适合你想要达到的目标,但我担心你应该重新整理一下。
根据您问题中的信息,您只有一个分支和两个遥控器用于两个不同的项目。你想要两个不同的分支。
首先查看没有Project-1父项提交的最新启动提交。
git checkout Commit1SHA
为您的初学者项目创建一个新分支,并将其设置为跟踪入门者。
git checkout -b stmaster
git branch stmaster -u starter/master
仅限这一次,我们可以用樱桃镐修剪树木,但事情会变得更加清洁。
git cherry-pick Commit5SHA
现在推送只会将提交1和5发送给启动器
git push
从这里开始,您将设置一个良好的rebase策略,以保持您的合并线整洁。您可以继续处理Project 1,进行提交,并正常推送。
git checkout master
echo "hello world" > newfile.txt
git add .
git commit -m "create hello world"
git push
现在,当您想要对启动器进行更改时,请检查该分支是否正常工作。
git checkout stmaster
echo "starter changes" > more.txt
git add .
git commit -m "create more changes"
git push
现在将这些更改重新绑定到项目1中以保持提交行。
git checkout master
git rebase stmaster
git push
答案 1 :(得分:0)
OMG它的工作
签出主分支(git checkout master)
通常在主分支上工作
处理入门代码并提交#34;代码中可重用且有益于启动程序的部分“{小心永远不要将项目代码包含在启动器提交中}
准备好看魔术!