使用Git时,我的工作流程通常涉及启动TortoiseGit并选择我想要提交的文件.
这(我假设)运行git add(?)并将这些更改提交给本地repo.
我的问题是 - 为什么ADDING文件与索引之间的分离以及需要委托它们?
有没有用于简单地将文件添加到索引而不同时提交它们的用例?
在做出承诺之前,我发现git diff我已经做出了一些我宁愿不做的改变。有什么办法可以恢复这个单一的改变吗?
我想我可以用来git add -p提交我打算做的更改,然后检查master。有没有更好的方法,最好是不需要我承诺的方法?
这是 Kubuntu Linux 12.10 上的 Git 1.7.10.4。谢谢!
我在最近的一个项目中使用Mercurial.在我正在部署项目的Web服务器上,我有一个略有不同的配置文件和生产设置.问题是,当我pull和update我经常要merge和commit为好.
这是正确的工作流程吗?看起来奇怪的是,为了能够继续更新,我必须提交更改集,我想合并会将它们集成到我的生产分支中,并且每次更新时都会继续这样做.这是一个分布式版本控制范例我还不习惯吗?
在我的设置中,我有一个中央Hg仓库,我正在推动我的本地更改.在我的本地克隆中说我有一系列本地提交然后我想将更改推送到中央存储库.如何在不包含我所做的所有"小"本地提交的情况下仅推送最终状态?
我想要这个,因为有时候我不想用我所做的所有小的本地提交来污染中央回购的历史.
比如,如果整个团队使用Git或Mercurial正在做:
(例如Mercurial(Hg)):
hg pull
hg update
[edit files or add files, and test]
hg add .
hg commit -m "good"
hg push
Run Code Online (Sandbox Code Playgroud)
我不知道它与使用SVN有何不同?如果团队从不推送或拉到另一个成员,而只是拉动并推送到中央服务器.(除非我们说合并更好,但合并是SVN或Git/Hg的工作,只取决于他们做的工作有多好,但不取决于它是否是DVCS(分布式版本控制系统)).真的吗?
我们有一个200mb的文件.我们目前使用rsync在开发人员更改时将其传输.如果我们将它作为我们的mercurial存储库的一部分包含在内,那么mercurial只会像rsync一样传输差异,还是会在更改时传输完整的文件?
我对这个回购历史感到困惑。在该页面上,您将看到一个小分支file-content,default即使一个头是另一个头的祖先,该分支也会合并回到该分支。
当我尝试做类似的事情时,除非出现错误消息,否则
file-content分支标记为不活动,未关闭。)
编辑:我的答案中描述了可以与祖先合并的实际条件。
那么这是怎么回事?
我有一个Hg存储库,变更集0代表"添加.hgignore".从变更集1开始,我通过脚本从许多Subversion修订版中逐步添加了变更集.然后我和Hg一起工作了一段时间.
现在我决定需要更多的Svn修订版,这些修订版位于历史早期,而不是开始修订版(Hg中的变更集1).
是否可以在0和1之间插入新的变更集?如果是的话:怎么样?
我们已经完成了工作,而且有一件事似乎与工作流程相关,而且还有待更改.
我可以创建一个新的挂起变更集,为其分配更改,为其分配jira票证等等...我可以将文件搁置在那里并在其他变更集中进行其他更改.然后,当它在签入时,我可以通过简单地提供变更集ID来推送这些变更.
任何主要的分布式版本控制系统都提供这样的东西吗?我看到大多数都提供了搁架的变种,但待定的变更集?
编辑 - 一个澄清的例子:
我有一个带文件AZ的项目.我在更改我正在进行的源更改之前做了更新.我注意到我还没有准备采用一个改变,所以我通过修改A和B来创建一个hack.然后我对文件C,D和E进行更改.
我只想检查后三个,我想附上我正在回复的jira票.在p4v中,这就像创建一个新的"挂起的变更集"并检查我想要的文件以及票号一样简单.然后我提交我的待定变更集.然后,我可以保持我的黑客为下一次运行或恢复它.
我熟悉GIT并将其用于项目的版本控制。
我有几个想知道的问题。我用谷歌搜索,但没有得到很好的答案。
所以事情是我要拥有master,module1,feature1分支。
master
----------
| module1
----------
| feature1
------------
Run Code Online (Sandbox Code Playgroud)
module1从master分支,feature1从module1分支。
查询1:在feature1分支中,如果我进行少量更改并将其提交并推入module1,该怎么办?
git add .
git commit -m "Changes of feature1"
git push origin module1 //Being in feature1 branch
Run Code Online (Sandbox Code Playgroud)
Feature1到module1分支的代码在这里发生了什么,以及module1分支如何采用它。
我的了解:根据我的理解,feature1的更改将被推送到module1分支。后来我意识到我应该将其推入feature1分支,然后将其推入feature1分支,并将检出到module1分支,并还原我最近推送的代码。
查询2:如果在feature1分支中,我通过以下操作在该分支中提取了module1的代码,该怎么办
git pull origin module1 //Being in feature1 branch
Run Code Online (Sandbox Code Playgroud)
我的理解:module1代码的更改将合并到我的feature1分支中,并且与命令中的以下内容相同
git checkout moduel1
git pull origin module1
git checkout feature1
git merge module1
Run Code Online (Sandbox Code Playgroud)
如果有任何冲突,将显示出来。我需要解决。
任何人都可以帮助我,无论我的理解是否正确。如果没有,请帮助我正确理解这个概念。提前致谢。