我对Git很新.现在我只有一个存储库的主分支.我开始与另一个人合作,我很困惑如何在这个人的同时做出调整.我正在使用Tower,所以我不需要在命令行上学习任何东西 - 我只是在寻找流程描述.
我的直觉是每个人都有我们自己的分支机构,我们正在单独处理.这是正确的方法吗?一旦工作完成,我们是否只将这些分支与我们的主人合并?
让我们说这个人做了一个改变并将它提交到主分支,而我一直在我的分支中处理其他事情 - 我如何将他的工作与我自己合并?
我想使用Git或SVN(Subversion)之一作为备份系统.对我来说唯一重要的是系统的存储和性能.我搜索了一下,我发现的大多数结果是将它们与源控制相关的功能进行比较,例如分支,本地存储库等.但是,正如我所提到的,我不是在寻找这样的功能.
总之,我想知道:
如果在比较中添加了一些事实(实验),我将不胜感激.我正在寻找可靠的证据.
在我的编码项目中,每个文件通常都有一个注释掉的标题部分,其中包含有关该文件的一些信息,包括当前项目版本.每当我发布新版本的项目时,我都需要更新所有文件中的版本信息.
我的问题如下:当我检查不同提交之间的文件更改时,它自然地显示项目中的每个文件都已更改,这使得很难发现实际更改.有没有办法忽略文件标题部分的更改?我正在寻找像git标签或关键字这样的东西放在我需要忽略的任何一行上,这有点类似于:
/* <gitignore> Project Version: 10.6 </gitignore> */
Run Code Online (Sandbox Code Playgroud) 我准备第一次发布,所以我这样做
git checkout -b release-1.0 develop
./bump-version.sh 1.0
Run Code Online (Sandbox Code Playgroud)
我收回错误:
bash: ./bump-version.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这是git问题.在这种情况下,答案是什么?
我正在尝试理解git,我想知道你是否可以在我在下面的例子中做出的任何错误的观点上纠正我.
举个简单的例子,假设我初始化一个包含以下2个简单文件的存储库.
main.cpp中
#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
algorithms.cpp
#include <string.h>
void reverse_string ( char * s )
{
char * offend = *(s + strlen(s));
while(offend != s && --offend != s)
{
char temp = *s;
*s = *offend;
*offend = temp;
++s;
}
}
Run Code Online (Sandbox Code Playgroud)
当我commit在add所有文件之后创建第一个文件时,2个文件的内容存储在git中,然后我返回一个根据2个文件的内容计算的哈希值(加上一些元数据,例如它们在目录树中的位置和等等).该散列仅仅是一个标识符,但也可以用于检查不同的提交是否包括相同的文件集(假设散列中没有冲突).我们假设哈希是firstcommit5njn2n34n.
现在我已经进行了第一次提交,base除非我rebase在某个时刻,否则它将用于所有后续提交.
假设我对第二个文件稍作修改.
algorithms.cpp
#include <string.h>
void reverse_string ( char * s )
{
char * offend = …Run Code Online (Sandbox Code Playgroud) 我们应该将dist文件夹保存在Source Control中,例如Angular中的git => 2吗?为什么不呢?
谢谢
更新
因此,在我原来的问题,我只是感到沮丧,因为我是被推到使用源代码控制,但我就是不明白它(使用SVN和VSS后).
我蜿蜒了一下,在访问了几次后,决定阅读http://www.hginit.com,这几乎是我的救赎.
DCVS(至少对我来说是一个单独的开发)才有意义,我理解源代码控制.DCVS是GIT和Mercurial操作的方式/理念,我猜它们都非常相似,但是,GIT不是在Windows上进化的,Mercurial却有很好的工具@grenade在他的回答中提到了所有这些.安装很轻松,现在我很开心.
另外,我使用的是基于mercurial的FogBugz,非常棒!= d
阅读http://www.hginit.com整个事情,即使您认为它可能不适用于您!
查看Linus Torvalds Talk on Git. - 一般有趣,你了解DCVS是什么.此Stackoverflow博客文章可能会有所帮助.
注意,http://www.codeplex.com和http://code.google.com/projecthosting/都支持mercurial
另见:使用visual studio 2010进行mercurial的白痴清单
原始问题:
主我要求的是一些简单的软件,它将维护我的文件版本并恢复到我想要的版本.
就个人而言,我觉得只是使用一个很好的备份工具,我只需要在我想要的时候在另一个驱动器上压缩我的文件夹的副本.但他们说我必须使用一些源版本.
已经发布了SVN的问题.现在它的GIT.
我从这里http://code.google.com/p/msysgit/下载了msysgit preview 1.7.2.3 然后从code.google.com下载了GIT Extensions然后我从这里下载了p4merge:http://www.perforce.com/ Perforce公司/下载/ index.html的
我有VS7的Win7 x64.我在VS中看到了GIT菜单,但没有任何反应!?哎呀!
最糟糕的是,文档在哪里?什么是Bash,Stash,Cherry Pick?我在VS GIT工具栏上单击的任何内容或VS中的Git菜单都没有做任何事情!我下载了完整的设置:http://code.google.com/p/gitextensions/downloads/detail ?name = GitExtensions203SetupComplete.msi&can = 2&q =但是我在电脑上的任何地方都看不到KDiff3?当我想要一切本地的时候,p4merge本身有一些问题要求我提供配置的服务器地址!
有人可以建议一些非常简单的事情, 我不做大项目,大多数都是内部工具,我是一个单人团队,我喜欢保持简单.
注意:我需要一些适用于Win7x64和VS2010的东西,vs2008在我的家用电脑上但VS10在开发盒上
我也在Reddit上发布了这个问题
我不是版本控制或Git专家,我手动执行所有步骤非常麻烦.我想有一个文本编辑器uplon关闭文件,如果有任何更改,应用这些命令:
git add <filename>git commit -m "the commit message entered in the popup"如果您能帮助我知道是否有这样的编辑器可以内置此功能或通过插件/插件,我将不胜感激.或者如果可以编写这样的插件.
PS1.它实际上不一定是git,mercurial或其他版本的控制系统也没关系.
PS2.我认为这应该在Vim脚本和/或emacs lisp中可行,如果我知道那些语言.