我目前正在featurex
分支机构工作。我们的主分支名为分支our-team
。自从我开始处理featurex
以来,对分支our-team
进行了更多更改。在我推送featurex
进行合并之前,我会在本地希望将所有更改从our-team
分支转换为featurex
,以便我可以确保一切按预期工作。
我已在本地完成此操作以获取our-team
的所有最新更改。
git checkout our-team
git pull
我该怎么做?
答案 0 :(得分:28)
第1步:转到主分支our-team
第2步:从our-team
分支
第3步:转到您的分行featurex
featurex
步骤4:将our-team
分支的更改合并到featurex
分支
our-team
或 git cherry-pick {commit-hash}
如果要合并特定提交第5步:使用our-team
分支
注意:在推送之前将
our-team
分支合并到featurex
分支后,您可能需要修复冲突
答案 1 :(得分:9)
当您在分行git rebase our-team
featurex
DOC:https://git-scm.com/docs/git-rebase
它会在our-team
分支的末尾移动分支的起点,合并featurex
分支中的所有更改。
答案 2 :(得分:8)
git pull origin our-team
或
import UIKit
import AVKit
import AVFoundation
import MediaPlayer
class ViewController: UIViewController {
let avPlayerViewControler = AVPlayerViewController()
var avPlayer:AVPlayer?
var videoNumber:Int!
var url:String!
override func viewDidLoad() {
super.viewDidLoad()
let urlpathString:String? = NSBundle.mainBundle().pathForResource("url", ofType: "mp4")
if let urlPath = urlpathString {
switch videoNumber {
case 1 : url="20"
case 2 : url="10"
default : break
}
let movieUrl = NSURL(fileURLWithPath: urlPath)
}
self.avPlayer = AVPlayer(URL: movieUrl)
self.avPlayerViewControler.player = self.avPlayer
}
@IBAction func Cool(sender: UIButton) {
videoNumber=1
}
}
但首先你要确保你已经在要更新的分支上(featurex)。
答案 3 :(得分:6)
针对其他在Google上发帖的人。 有两个选项,合并或重新定基您的分支机构。两者的工作方式不同,但结果相似。
accepted answer是 rebase 。这会将对our-team
所做的所有提交,然后应用于featurex
,并提示您根据需要进行合并。
重新设置基准的一点警告是,您丢失/重写了分支历史记录,实际上是告诉git分支不是从123abc提交开始的,而是从456cde分支开始的。这 会给分支机构中的其他人员造成问题,一些远程工具会抱怨这一点。如果您确定自己在做什么,那就是--force
标志的作用。
other posters的建议是 merge 。这将使用featurex
分支(无论其处于何种状态),并尝试将其与our-team
的当前状态合并,提示您进行一次大型合并合并并修复所有合并错误,然后再进行推送到our-team
。区别在于您要在featurex
新提交之前应用提交our-team
提交,然后解决这些差异。您也不会重写历史记录,而是向其中添加一个提交,而不是重写以前的提交。
两个选项均有效,并且可以同时使用。通常,(如果您使用的是诸如git-flow之类的广泛工具和方法)对功能分支所做的工作通常是将其合并到主分支中,通常要经过合并请求,然后解决所有问题一个或多个合并提交中发生的冲突。
Rebasing是一个有趣的选项,它可以帮助您在最终进行合并之前修复分支,并减轻必须进行一次大型合并提交的痛苦。
答案 4 :(得分:2)
你快到了:)
剩下的就是
git checkout featurex
git merge our-team
这会将我们的团队合并到featurex中。
以上假设您已经在featurex中提交/隐藏了您的更改,如果不是这种情况,则需要先执行此操作。