Tag: git新

如何让git log显示文件名如svn log -v

SVN的日志有一个“-v”模式,输出在每个提交中更改的文件的文件名,如下所示: jes5199 $ svn log -v ————————————————– ———————- r1 | jes5199 | 2007-01-03 14:39:41 -0800(Wed,03 Jan 2007)| 1行 更改的path: A / AUTHORS A /复制 A / ChangeLog A /演变 A / INSTALL A / MacOSX 有没有一种快速的方法来获取每个提交git中更改的文件列表?

为什么有两种方法来卸载git中的文件?

有时候,gitbuild议git rm –cached到一个文件,有时候git reset HEAD file 。 我应该什么时候使用哪个? 编辑: D:\code\gt2>git init Initialized empty Git repository in D:/code/gt2/.git/ D:\code\gt2>touch a D:\code\gt2>git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>…" to include in what will be committed) # # a nothing added to commit but untracked files […]

git分支命名最佳实践

我已经使用了一个本地的git仓库,与我的团队的CVS仓库进行数月的交互。 我做了一个几乎神经质的分支,其中大部分已经合并到我的箱子里了。 但命名开始成为一个问题。 如果我有一个简单的标签命名的任务,但是我分三个阶段完成,每个阶段都包含自己的分支和合并情况,那么我可以每次都重复分支名称,但这会使历史有点混乱。 如果我在名称上更加具体,每个阶段都有单独的描述,那么分支名称就会变得漫长而笨拙。 我确实在这里学习了一些旧线程,我可以用这个名字来命名分支,比如topic / task,或者类似的东西。 我可能会开始这样做,看看是否有助于保持组织更好。 命名git分支的一些最佳实践是什么? 编辑:没有人提出任何命名约定。 我完成删除分支。 由于pipe理层不断调整优先顺序,我恰好碰巧有几个。 :)作为一个为什么我可能需要在一个任务上有多个分支的示例,假设我需要将任务中的第一个离散里程碑提交给组的CVS存储库。 在那个时候,由于我与CVS的交互不完善,我会执行这个提交,然后杀死那个分支。 (如果我试图在这一点上继续使用同一个分支,我已经看到了太多与CVS交互的奇怪现象。)

Git:从master上的unstaged / uncommitted更改创build一个分支

上下文:我正在为主添加一个简单的function。 几分钟后,我意识到这并不是那么简单,而应该更好地进入一个新的分支。 这一直发生在我身上,我不知道如何切换到另一个分支,并采取所有这些无情的变化与我离开主干分支干净。 我应该把git stash && git stash branch new_branch只是简单地完成,但是这是我得到的: ~/test $ git status # On branch master nothing to commit (working directory clean) ~/test $ echo "hello!" > testing ~/test $ git status # On branch master # Changed but not updated: # (use "git add <file>…" to update what will be committed) # […]

Mercurial和Git有什么区别?

我一直在使用git一段时间在Windows上(与msysGit),我喜欢分布式源代码pipe理的想法。 就在最近我一直在看Mercurial(汞),它看起来很有趣。 不过,我无法围绕着hg和git的区别。 有没有人在git和hg之间进行了比较? 我很有兴趣知道什么是不同的hg和git,而不必跳进fanboy讨论。

如何恢复未提交的更改,包括文件和文件夹?

是否有一个git命令来恢复工作树和索引中的所有未提交的更改,还删除新创build的文件和文件夹?

我怎样才能得到最近提交sorting的git分支列表?

我想得到一个Git仓库中所有分支的列表,其中“最新鲜的”分支在最上面,“最新鲜的”分支是最近被承诺的分支(并且因此更可能是我想要注意)。 有没有一种方法可以使用Git来(a)通过最新的提交对分支列表进行sorting,或者(b)以某种机器可读的格式获取分支列表以及每个分支的最后提交date? 最糟糕的情况是,我总是可以运行git branch来获取所有分支的列表,parsing它的输出,然后对每个分支的git log -n 1 branchname –format=format:%ci来获取每个分支的提交date。 但是这会在一个Windows机器上运行,在这个机器上启动一个新的进程相对比较昂贵,所以如果有很多分支机构,每个分支启动一次git可执行文件就会变慢。 有一种方法可以用一个命令完成所有这些吗?

如何查看提交中的更改?

当我做git diff COMMIT我看到了这个提交和HEAD(afaik)之间的变化,但是我希望看到这个提交所做的更改。 我还没有发现任何明显的差异/日志选项,将给我的输出。

我如何正确强制Git推?

我已经build立了一个远程的非主要的“主”回购,并将其克隆到我的电脑。 我做了一些本地更改,更新了我的本地存储库,并将更改推回到我的远程仓库。 事情到此为止都没有问题。 现在,我不得不改变远程回购的东西。 然后,我改变了我本地回购的东西。 我意识到,远程回购的变化是不需要的。 所以我试图从我的本地回购git push到我的远程回购,但我有一个错误,如: 为防止您丢失历史logging,拒绝非快进更新在再次推送之前合并远程更改。 有关详细信息,请参阅git push –help的“快速转发注释”部分。 我以为这可能是一个 git push –force 将强制我的本地副本推送到远程更改并使其相同。 它强制更新 ,但是当我回到远程仓库并进行提交时,我注意到这些文件包含过时的更改(主远程仓库之前的更改)。 正如我在评论中提到的其中一个答案 : [我]试图强迫,但当回到主服务器保存更改,我得到过时的分期。 因此,当我提交存储库是不一样的。 而当我尝试再次使用混帐推,我得到同样的错误。 我该如何解决这个问题?

如何在git中通过名字命名和检索存储?

我总是有这样的印象,你可以通过做git stash save stashname一个名字,你可以通过做git stash apply stashname 。 但是,在这种情况下,似乎所有情况都是使用stashname作为存储描述。 有没有办法实际上命名藏匿? 如果不是,你会推荐什么来实现相同的function? 基本上我有一个小的暗藏,我会定期喜欢应用,但不希望总是不得不在git stash list它的实际隐藏号码是什么。