我正在使用主分支和另一个主题分支的git存储库.我已切换到主题分支并修改了一个文件.现在,如果我切换到主分支,则相同的文件显示为已修改.
例如:
git-build分支中的git状态:
# On branch git-build
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: cvsup_current
#
Run Code Online (Sandbox Code Playgroud)
切换到主分支
[root@redbull builder_scripts (git-build)]# git co master
M builder_scripts/cvsup_current
Switched to branch "master"
Run Code Online (Sandbox Code Playgroud)
主分支中的git状态
[root@redbull builder_scripts (master)]# git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: cvsup_current
#
Run Code Online (Sandbox Code Playgroud)
为什么文件在master分支中显示为已修改,即使它在git-build分支中被修改了?
我的理解是,分支是相互独立的,当我从一个分支转换到另一个分支时,变化不会从一个分支"溢出"到另一个分支.所以我显然在这里遗漏了一些东西.
有人拿到了线索吗?
我回到了一个旧的项目,我跑了很好的git status去弄清楚发生了什么,我注意到了太多的分支!我想在开始再次工作之前做一些家务,但我不确定哪个分支来自哪个..
EG"branchA"是否来源于"发展"?"branchB"是否来自"master"或"branchA"?
我如何回答上面的示例问题?
我有一个主分支和一个工作branch_1.我想branch_1完全按原样"移动" master.所以我想要这样的东西:
git checkout master
git merge branch_1 # I don't know what is correct...
Run Code Online (Sandbox Code Playgroud)
我做的事情,但我有大量的文件搞砸了恼人的冲突.所以现在master包含完全相同的文件,branch_1避免任何冲突,只是覆盖文件.有帮助吗?
我在想是否有一种方法,当我将一个分支合并到另一个分支时,所有已更改的文件都列在我的提交消息中,而不仅仅是在两个分支中都被修改的那些.通过查看合并提交,这将使我更好地了解分支中的更改内容.有没有办法做到这一点?
我想通过在GIT更新挂钩中使用锁定脚本来锁定用户将文件推入其中的存储库,因为推送只能将userid识别为参数而不是分支.所以我可以锁定刚刚锁定目录的整个仓库.
有没有办法锁定GIT中的特定分支?
或者,Update Hook是否可以识别用户正在推送哪个分支以及推送代码的分支?
我真的很喜欢git.至少,我喜欢git的想法.能够将我的主项目结账为一个单独的分支,在那里我可以改变我想要的任何东西,而不用担心其他一切都搞砸了,这真是太棒了.但它不起作用.
基本上,我的工作流程是这样的:
每次我将分支签出到另一个分支,对一个分支进行更改,然后签出原始分支,我仍然拥有在另一个分支中发生的所有文件和更改.这非常令人沮丧.我已经读过,当你在IDE中打开文件的时候会发生这种情况,但是我一直非常小心这一点,并关闭了IDE中的文件,关闭了IDE,并在切换之前关闭了我的rails服务器分支,这仍然发生.此外,运行'git clean -f'要么删除在任意提交之后发生的所有事情(并随机地,在那时),或者,如在最新的情况下,不会将任何内容更改回其原始状态.
我以为我正确使用git,但此时此刻,我的智慧已经结束了.我正在尝试使用我的项目的稳定版本来处理一堆实验代码,但我不得不手动追踪并修复我所做的所有更改.任何想法或建议?
git checkout -b photo_tagging
git branch # to make sure it's right
# make a bunch of changes, creations, etc
git status # see what's changed since before
git add . # approve of the changes, I guess, since if I do git commit after this, it says no changes
git commit -m 'these are changes I made'
git checkout master
git branch #=> *master …Run Code Online (Sandbox Code Playgroud) 我想完全清空Git中的master分支.现在,我还想保留所有其他分支机构从硕士分支机构.
这可能吗?怎么样?
我是git的新手.我有一个非常简单的使用git的场景.我的第一个版本是用Android Studio编写的.现在我想使用一些新功能.到目前为止我做了什么:
$git push -u origin master)现在我对下一步感到困惑:创建一个功能分支.我应该在本地存储库中创建一个分支:
$ git branch --track feature1 origin/master
Run Code Online (Sandbox Code Playgroud)
或者我应该从Bitbucket门户网站创建一个新的分支,并克隆新的分支?
我还想知道如何使用Android Studio切换分支机构?例如,从功能分支切换到主分支以处理某些修补程序.每次切换分支机构时我是否需要使用Bitbucket插件从远程存储库检查项目,或者我可以在Android Studio中热切换它?
谢谢!
我在git中有一个分支,想要弄清楚它最初分支的分支和什么提交.
Github似乎知道,因为当你执行pull请求时,它通常会自动设置它应该进入的分支,但我无法弄清楚如何从命令行手动执行此操作.
让我添加一个具体的例子:
master -- ongoing development
2.2 -- stable maintenance
Run Code Online (Sandbox Code Playgroud)
feature创建了一个功能分支(在B下面的提交中)并处理(B',C'&E')并与源分支合并以获取C和D
feature branch: B'-C'-C--D--E'
/ /
source branch: A--B--C--D--E-- ...
Run Code Online (Sandbox Code Playgroud)
现在我想合并feature回它的源代码,但我不确定它是否最初是分支master或者2.2.为了将功能合并到正确的来源,有没有发现如果源科是一个纲领性的方式master还是2.2?
我克隆了一个git repo然后开始在它的主分支中玩.过了一会儿,我想忽略我刚刚做出的改变(不提交它们),然后切换到另一个分支.但是,它阻止我切换,因为有未提交的更改.如何在不隐藏它们的情况下忽略它们?这是发生的事情:
$ git checkout gh-pages
error: Your local changes to the following files would be overwritten by checkout:
somefile.txt
Please, commit your changes or stash them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud) git ×10
git-branch ×10
git-merge ×2
android ×1
branch ×1
git-checkout ×1
git-stash ×1
merge ×1