我知道.gitignore文件隐藏了Git版本控制中指定的文件.我有一个项目(LaTeX),它在运行时会生成许多额外的文件(.auth,.dvi,.pdf,日志等),但我不希望这些文件被跟踪.
我知道我可以(也许应该)这样做所有这些文件放在项目中的一个单独的子文件夹中,因为我可以忽略该文件夹.
但是,有没有可行的方法将输出文件保存在项目树的根目录中,并使用.gitignore忽略除了我用Git跟踪的文件之外的所有内容?就像是
# Ignore everything
*
# But not these files...
script.pl
template.latex
# etc...
Run Code Online (Sandbox Code Playgroud) 请考虑以下情形:
我在自己的Git仓库中开发了一个小型实验项目A. 它现在已经成熟,我希望A成为更大的项目B的一部分,它有自己的大型存储库.我现在想添加A作为B的子目录.
如何将A合并到B中,而不会丢失任何一方的历史记录?
如果我有一个符号链接的文件或目录,我将它提交到Git存储库,它会发生什么?
我会假设它将它作为符号链接留下,直到文件被删除,然后如果你从旧版本拉回文件它只是创建一个普通文件.
当我删除它引用的文件时它会怎么做?它只是提交悬空链接吗?
我是Git分支复杂的新手.我总是在一个分支上工作并提交更改,然后定期推送到我的远程源.
在最近的某个地方,我重置了一些文件以使它们脱离提交暂存,后来又做了一个rebase -i去除几个最近的本地提交.现在我处于一种我不太了解的状态.
在我的工作区域,git log显示我所期待的 - 我在正确的火车上,我不想要的提交,以及那些新的,等等.
但是我只是推送到远程存储库,并且有什么不同 - 我在rebase中杀死的一些提交被推送,而本地提交的新提交不存在.
我认为"master/origin"与HEAD分离,但我不是100%清楚这意味着什么,如何使用命令行工具将其可视化,以及如何修复它.
我阅读了Git手册,常见问题解答,Git - SVN速成课程等等,他们都解释了这个和那个,但是你无处可以找到一个简单的指令:
SVN存储库: svn://myserver/path/to/svn/repos
Git存储库: git://myserver/path/to/git/repos
git-do-the-magic-svn-import-with-history \
svn://myserver/path/to/svn/repos \
git://myserver/path/to/git/repos
Run Code Online (Sandbox Code Playgroud)
我不希望它那么简单,我不指望它是一个单一的命令.但我确实希望它不要试图解释任何事情 - 只是说这个例子采取了哪些步骤.
我正在使用Git,我已经提交了几个文件
git commit -a
Run Code Online (Sandbox Code Playgroud)
后来,我发现错误地将一个文件添加到了提交中.
如何从上次提交中删除文件?
什么时候建议使用git rebasevs. git merge?
成功改造后我还需要合并吗?
作为一个长期的Visual SourceSafe用户(和仇恨)我正在讨论与同事转换到SVN ; 他建议改用Git.显然,它可以在没有中央服务器的情况下用作点对点(我们是一个3开发团队).
我无法找到任何关于将Git与Visual Studio集成的工具,但这样的事情是否存在?
在Visual Studio中使用Git有哪些技术可用?在开始之前,我需要了解它们之间的区别?
在Git中是否有一个命令可以查看(转储到stdout,或者在$PAGER或中$EDITOR)特定文件的特定版本?
我有一个脚本在一个分支中工作正常,在另一个分支中被破坏.我想并排看两个版本,看看有什么不同.有没有办法做到这一点?
要明确我不是在寻找比较工具(我使用Beyond Compare).我正在寻找一个git diff命令,它允许我将主版本与我当前的分支版本进行比较,看看有什么变化.我不是在合并或任何事情的中间.我只想说些什么
git diff mybranch/myfile.cs master/myfile.cs
Run Code Online (Sandbox Code Playgroud) git ×10
git-commit ×1
git-diff ×1
git-merge ×1
git-rebase ×1
git-subtree ×1
git-svn ×1
gitignore ×1
merge ×1
repository ×1
svn ×1
symlink ×1