我在使用TFS的Visual Studios工作,我有3个分支机构。在我们的repo中,每个分支都有2个带有配置文件的解决方案。这些配置文件已已提交,需要继续提交。但是,在我的机器上,我需要更改配置文件以指向正确的数据库。
我已尝试import UIKit
import FirebaseAuth
class ProtectedViewController: UIViewController, ForceSignInBannerDelegate,
SignUpViewControllerDelegate, LoginViewControllerDelegate{
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
NotificationCenter.default.addObserver(self, selector: #selector(checkAuthentication), name: .myNotification, object: nil)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.checkAuthentication()
}
func checkAuthentication() {
let bannerViewController = ForceSignInBanner.instanceFromNib() as! ForceSignInBanner
bannerViewController.delegate = self
if (!AuthenticationService.sharedInstance.isAuthenticated()) {
self.setView(view: bannerViewController, hidden: false)
print("Need to login")
} else if(AuthenticationService.sharedInstance.isAuthenticated()) {
self.setView(view: bannerViewController, hidden: true)
}
}
func setView(view: UIView, hidden: Bool) {
UIView.transition(with: view, duration: 0.5, options: .transitionCrossDissolve, animations: { _ in
view.isHidden = hidden
if hidden {
view.removeFromSuperview()
} else {
self.view.addSubview(view)
}
}, completion: nil)
}
但是当我去切换分支时,我收到以下错误消息:
还有
a = [["a", "b", "c"], ["d", "e", "f"], ["g", "h", "i"]]
a[0].product(*a[1..a.length])
#=> [["a", "d", "g"], ["a", "d", "h"], ["a", "d", "i"], ["a", "e", "g"], ["a", "e", "h"], ["a", "e", "i"], ["a", "f", "g"], ["a", "f", "h"], ["a", "f", "i"], ["b", "d", "g"], ["b", "d", "h"], ["b", "d", "i"], ["b", "e", "g"], ["b", "e", "h"], ["b", "e", "i"], ["b", "f", "g"], ["b", "f", "h"], ["b", "f", "i"], ["c", "d", "g"], ["c", "d", "h"], ["c", "d", "i"], ["c", "e", "g"], ["c", "e", "h"], ["c", "e", "i"], ["c", "f", "g"], ["c", "f", "h"], ["c", "f", "i"]]
# or
a.slice!(0).product(*a) #Note: this mutates array.
# or
a[0].product(*a.drop(1)) # suggested by Cary Swoveland
它创建git update-index --skip-worktree App.config
文件,当提交时,App.config将从我不想要的repo中删除。
我的目标是忽略我对文件所做的更改,但将文件保存在在线git仓库中。
答案 0 :(得分:0)
git update-index --skip-worktree
仅隐藏在索引中显示的更改,它不会使更改消失。如果你正在切换分支git需要能够更新你的配置文件,但你的本地更改阻止它这样做(无论文件是否从索引中隐藏都是如此)。
这是我最近一直在使用的工作流程:
test
。在那里提交配置更改。work
。随时进行小改动(无论如何这都是好的做法)。test
并在work
之上重新绑定它。 (如果你这么做很多,你可以设置test
跟踪work
以保存一些击键。)test
位于work
之后,您git checkout test
可以使用修改后的配置,或git checkout work
恢复编码。rebase --interactive
将所有临时提交压缩为一个(或多个)官方更改。从work
推送,然后单独留下test
,直到您再次需要进行本地更改。答案 1 :(得分:0)
我建议采用以下方法。让Git知道更改:
git update-index --no-skip-worktree EACH_CONFIG_FILE
存储这些更改:
git stash save "Save local conf"
现在,您可以顺利签出到另一个分支,然后恢复本地更改:
git stash pop
,您可以解决冲突(如果有),接受您的本地配置文件。 最后,再次更新索引以跳过这些文件。