相关疑难解决方法(0)

我可以在不修改我的工作副本的情况下重新绑定Git分支吗?

假设我检查了我的"主"分支.我已经对"master"进行了一些生产更改,现在我想将我的"实验"分支改为最新的master.但是,我想在不修改工作副本中的任何文件的情况下执行此操作.从本质上讲,我希望所有的魔法都发生在.git目录中,而不需要触及工作副本.

如果不是"不要修改我的工作副本"要求,这只是一个问题:

# current branch is master
git checkout experimental
git rebase master
git checkout master
Run Code Online (Sandbox Code Playgroud)

我真正的问题是,这会修改我的工作副本中的时间戳,即使我通过查看与我开始的完全相同的内容结束.一旦我运行"git checkout experimental",任何包含实验分支中的更改的文件都会将其mtime设置为当前时间 - 因此,自上次重新实验以来,在master中更改的所有文件也是如此.因为mtimes已经改变了,所以像构建工具这样的东西会让人觉得他们需要再做一些工作,即使在我完成时,文件的内容实际上并没有改变.(就我而言,如果项目文件的时间戳发生变化,Visual Studio认为需要花费大量时间来卸载和重新加载项目.)我想避免这种情况.

有没有办法一步完成上述所有操作,而无需修改工作副本中的任何内容 (假设在rebase期间没有冲突)

(如果冲突,我更倾向于将显示该错误,然后中止整个操作,而不用修改任何时间戳但是,这只是我的偏好,而不是硬性要求-我不知道什么是一切皆有可能.)

当然我可以编写一个脚本来捕获mtimes,运行git,然后重置mtimes; 但似乎Git已经有办法在没有打扰工作副本的情况下执行rebase这样的事情,因为rebase实际上是关于增量,而不是文件的实际内容.

git rebase

58
推荐指数
4
解决办法
1万
查看次数

如何在几个分支上同时工作

这是关于创建分支的这个问题的后续行动.

令我感到奇怪的是,我仍然会在一个存储库上工作,因为我本地计算机上的文件将是不同实验的奇怪组合.

我认为最佳实践方法是复制存储库并在我的计算机上为每个分支工作在不同的文件夹中 - 但我不知道如何设置它.我在Documents/San/CompProj上有我当前的存储库,那么我用来创建一个绑定到不同本地文件夹上不同分支的新存储库的命令是什么?

Git对我来说相当新,所以我喜欢你可以对我上面假设/提出的任何更正.

git git-branch

50
推荐指数
3
解决办法
4万
查看次数

合并到git中的分支而不切换到它

我有一个应用程序在分支上的git存储库中运行(比如说dev).应用程序修改某些存储库中的内容并提交它们.我现在必须将这些更改合并到另一个分支(比如说master),但是在我git checkout master做这个之前我不想做这个问题.有没有办法说"将当前分支合并为主"?

git merge git-merge

44
推荐指数
2
解决办法
3866
查看次数

当我切换分支时,Git正在删除被忽略的文件

我有一个分支(让我们称之为B)忽略某个文件,在某些其他分支(例如分支A)中不会忽略该文件.当我从分支B切换到分支A,然后再次返回到B时,该文件已被删除.

这是正常的吗?我可以看到它会如何发生,在分支B认为它不存在的意义上,分支A认为它是,所以当我回到B时它"整理它".但它有点烦人.

有什么建议?

git

31
推荐指数
2
解决办法
5669
查看次数

Git - 将分支存储在单独的本地目录中

我对git很新,我正试图以正确的方式设置我的存储库.

基本上我的应用程序是各种平台,因此该平台的实现基于主分支,但对这些文件以及一些其他文件进行了一些小的修改.

我尝试将其设置为分支,因此我有一个master分支,implementation_1并且implementation_2.

但据我所知,这意味着本地所有分支都存储在一个目录中,它们的分离只能通过git.

我想是有3个本地目录,master,imp_1,和imp_2.如果我对imp_1目录中的一个核心文件进行了更改,我希望能够将该更改合并到master分支中并从那里合并到imp_2.

我开始认为这些需要是3个不同的存储库(实现是核心的分支).这是要走的路吗?在那种情况下,我将如何处理上述情况?

git version-control github

31
推荐指数
3
解决办法
2万
查看次数

如何在Git中管理项目的多个版本

我有一个开源的项目git用于修订控制.很快,我将发布该项目的高级托管版本,但是对于高级托管版本(性能等)的代码将进行更改,这在开源版本中不应该存在.

我想避免使用两个单独的目录/项目,因为如果我修复了开源版本中的错误,那么该错误最有可能出现在高级托管版本中.我不想在两个地方做出改变.

管理这个的最佳方法是什么?简单分支git将无法正常工作,因为某些文件需要有两个版本:开源版本和高级托管版本.

谢谢您的帮助.

git version-control project-management

31
推荐指数
2
解决办法
2万
查看次数

获取裸存储库的工作副本

我有一个服务器,我有一个裸存储库用于推送.但是,我的服务器需要有一个主分支的工作副本.

如何从裸存储库中获取工作副本?

git working-directory git-bare

31
推荐指数
6
解决办法
3万
查看次数

将git worktree与git子模块一起使用时会出现什么问题

我最近发现了这个git worktree命令:

新的工作目录链接到当前存储库,共享除工作目录特定文件(如HEAD,索引等)之外的所有内容.

但是文档也表明了这一点

...对子模块的支持不完整.建议不要对超级项目进行多次检出.

没有进一步解释什么是错误的.

有人可以告诉我有关预期的问题吗?例如,如果我使用以这种方式生成的单独工作树仅用于不影响子模块的更改,我会没事吗?

git git-submodules git-worktree

31
推荐指数
1
解决办法
4672
查看次数

多个临时区域

我可以使用git有多个临时区域或达到类似的效果吗?

我的典型工作流程如下:

  • 工作工作工作
  • 现在我有一些有用的东西的想法,让我们来提交它git add -p,y,y
  • 但首先这些较小的风格变化: git reset HEAD .
  • git add -p,n,n,y,q,git commit -m "style changes"
  • git add -p ..提交实际的东西

有时我会从一大堆变化中做出20个较小的提交.它可以节省我一天的时间,如果我可以运行像这样的补丁git add -p,然后将每个补丁"发送"到它自己的暂存区域并分别提交每个区域.

git

30
推荐指数
2
解决办法
1475
查看次数

在两个独立的IDE实例中打开两个GIT分支?

我们正在从Mercurial迁移到GIT.

对于Mercurial,我们有一个单独的存储库,而不是一个在GIT中具有单独分支的repo.

因此,使用Mercurial可以直接在IDE的两个独立实例中打开两个单独的存储库.你怎么能用GIT做到这一点,因为(我相信)在GIT回购中一次只有一个分支电流?

注意:此类似票证是指在同一IDE中打开两个分支.这个问题的不同之处在于我们很高兴在两个独立的IDE实例中打开它们.虽然我猜测答案是一样的 - 你不能这样做.

git mercurial intellij-idea

21
推荐指数
2
解决办法
1万
查看次数