我一直在Windows上使用Git(msysgit)来跟踪我一直在做的一些devise工作的变化。 今天,我一直在使用不同的PC(使用远程repo brian ),现在我正试图将今天完成的编辑合并到笔记本电脑上的常规本地版本中。 在我的笔记本电脑上,我使用了git pull brian master来将更改导入本地版本。 除了主要的InDesign文档之外,一切都很好 – 这显示为冲突。 PC上的版本( brian )是我想要保留的最新版本,但是我不知道哪些命令告诉回购使用这个版本。 我试图直接将文件复制到我的笔记本电脑,但这似乎打破了整个合并过程。 任何人都可以指向正确的方向吗?
我前几天从GitHub上拉了一个项目。 我发现GitHub上有几个叉子,我忽略了我最初拿的是哪一个。 我怎样才能确定哪些叉子我拉?
我在几台机器上开发。 我想为每个开发计算机上的每个项目都有一个存储库,并且我希望保持它们同步,而无需使用可推送到的远程存储库。 (现在我买不起一台专用机器)。 我认为git bundle是这个工作的正确工具。 当我在机器A上完成工作并且在机器B上解开时,我简单地捆绑我的回购。这给我留下了这样的问题: 是否有可能将有关标签和分支的信息embedded到捆绑中? 特别是,我如何捆绑标签对象? 编辑:只是一个音符放在一边 – 我想保持这个工作stream尽可能自动化。 我不想把这个软件包当作远程软件。 而不是,我想复制到我的资源库 – 这是添加提交和标签,快进现有分支和添加新的分支,如果分支不存在。
几天后,我正在为ScrollBack项目重新编写install.sh文件,由于我是唯一一个在本地执行此操作的人,所以我一直在提交相同的提交,并且偶尔推送给我的fork主。 (请忽略最佳做法,我一个人工作)。 在我记得之间发送电子邮件给我显示我的一半完成的工作,URL https://github.com/sindhus/scrollback/blob/8d8f7f414383499c2ab6fec586b4c9665a41c7aa/install.sh 现在由于一些困惑,我在本地工作中失去了工作(想想rm -rf),我记得在这之前推动。 所以github在某些时候看到了我的rebased提交ID为install.sh。 正如你可以看到上面的URL让我通过提交ID来访问这个blob。 不过,我不能在本地访问它,因为同一个回购是强制推动。 我的问题如何让github向我展示所有提交文件EVER的ID? 无论path如何,它可能知道该文件的所有ID。 如果我不得不使用他们的API,我不介意,但我想一些想法深入挖掘。 谢谢!
有没有可能修改默认的git commit消息的注释部分? 我想为我的用户添加更多的“上下文”信息。 # Please enter the commit message for your changes. # (Comment lines starting with '#' will not be included) # Explicit paths specified without -i nor -o; assuming –only paths… # On branch master # Changes to be committed: # (use "git reset HEAD <file>…" to unstage) # # modified: test.txt #
我对git比较陌生,以前我用过Subversion。 我注意到,如果文件已被重命名,大多数graphicsgit前端和IDE插件似乎无法显示文件的历史logging。 当我使用 git log –follow 在命令行上,我可以看到整个重命名日志。 根据Linus Torvalds的说法,下面的开关是一个“SVN noob”pleaser,严重的git用户不会使用它: – 下面是一个彻头彻尾的黑客,意味着只是满足前SVN的用户谁也不知道什么东西,如父母或良好的修订图。 这不完全是根本性的,但目前实施的“跟随”实际上是一个快速预处理的事情,它被固定在修订行走逻辑上,而不是任何真正不可或缺的东西。 它从字面上被devise成“SVN noob”,而不是“真正的gitfunction”。 这个想法是,你将摆脱思维的思维模式,重新思考大事情。 我的问题 :你们当中的硬核用户如何在重命名时得到一个文件的历史logging? 什么是“真正”的方式来做到这一点?
我在Ubuntu Linux下使用Git来同步和部署我的项目。 我在我的本地Linux工作机器上有Repo,在我的服务器上有两个回购站,一个是回收站,另一个是已部署的应用程序。 它总是工作正常,但现在我为我的其他网站创build了另一个回购,现在我得到这个错误: root@vserver5:/var/www/ninethsky# git pull origin master fatal: /usr/lib/git-core/git-pull cannot be used without a working tree. 所以我必须设置一个GIT_WORKING_TREE ENV-VAR,但究竟是在哪里设置的呢? 这是我的回购的.git / config: [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = /home/git/ninethsky/.git fetch = +refs/heads/*:refs/remotes/origin/* 还有另一个在我的本地工作机器上使用bare = true和repo的回购。 然后,我删除了所有的回购,但最初的一个,现在我得到: root@vserver5:/var/www/ninethsky# git init fatal: GIT_WORK_TREE (or –work-tree=<directory>) […]
我在结帐时使用filter来破解文件,就像这里所描述的那样。 现在的问题是,filter定义只存储在我的本地configuration文件中: $ cat .git/config …. [filter "dater"] smudge = /home/…/expand_date clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\" 如果我的同事希望从此Date扩展中受益,则需要复制我的filter定义。 如果我改变它,我需要通知他们,等等。 那么我可以将.git/configfilter定义部分存储在仓库中,并让git使用它?
首先,通过3次提交得到“你的分支在原点/主人之前”,那么我的应用程序已经恢复到较早的时间。 我怎样才能得到我最近11个小时做的事?
目前我有 空的GitHub回购 SSH服务器回购(主) 本地回复 SSH服务器回购是最新的回购(生产网站),所以我从那里做了一个Git克隆到本地。 然后我试图做一个git push到GitHub。 一切正常,但它说了一些关于GitHub的filename.gz太大了。 我不需要这个文件,所以我运行了几个Git命令从Gitcaching中删除,然后推回到SSH服务器。 我没有在本地看到大文件,但它仍然在SSH服务器上,即使git diff没有返回任何东西,git push会返回“Everything is up-to-date” – 尽pipe当我试图推到GitHub我仍然得到错误 远程:错误:文件fpss.tar.gz是135.17 MB; 这超过了100 MB的GitHub的文件大小限制 我遵循GitHub帮助中列出的 “解决问题”中的步骤,所以不应该这样做吗? 如果文件不在本地,或者在git status / diff / push中列出,文件如何仍然在以太网中?