Questions tagged «git»

Git是一个开源的分布式版本控制系统(DVCS)。使用此标签可解决有关Git使用和工作流程的问题。不要仅仅因为存储库恰好托管在GitHub上而使用[github]标签来解决与Git相关的问题。另外,请勿对碰巧涉及Git储存库的一般编程问题使用此标记。

4
在Git中重新部署远程分支机构
我正在使用中间的Git存储库来镜像远程SVN存储库,人们可以从中进行克隆和操作。中间存储库有每晚从上游SVN重新建立基础的主分支,我们正在开发功能分支。例如: remote: master local: master feature 我可以成功地将功能分支推回远程,并得到我期望的结果: remote: master feature local: master feature 然后,我重新设置分支以跟踪遥控器: remote: master feature local: master feature -> origin/feature 一切都很好。从这里我想做的是将功能分支重新建立到远程主机上的master分支,但是我想从本地计算机上完成。我希望能够做到: git checkout master git pull git checkout feature git rebase master git push origin feature 为了使远程功能分支与远程主服务器保持最新。但是,此方法导致Git抱怨: To <remote> ! [rejected] feature -> feature (non-fast-forward) error: failed to …

5
如何使用git切换回“ master”?
我已经做了第一次承诺;然后创建一个分支(假设branch1)。 在这个分支中,我创建了一个目录“ example”并提交。在GitHub中,我看到了新分支以及添加的新目录“ example”。 现在,我想知道如何“同步”回主服务器。并删除“ example”文件夹(因为它在master文件夹中不存在)。 编辑:find . -type d -empty -exec touch {}/.gitignore \; 做了工作。
135 git 

4
如何创建一个新的(并且是空的!)“根”分支?
我想在这个git仓库中定义一个新的“ root”分支。“根”分支是指完全独立于存储库1中所有其他分支的分支。 不幸的是,即使在A回购的提交树的最底层的提交(我们称它为)也包含很多文件(这是在一个已经相当成熟的项目上初始化的存储库)。 这意味着即使我给出A了新分支的名称<start-point>,该新分支也不会从“干净的板岩”开始,而是将包含在中提交的所有文件A。 有什么办法可以在此存储库中创建一个<start-point>尽可能接近的完全裸分支A? 1 BTW,这不等同于创建新的仓库。出于很多原因,单独的回购可能不太方便。 编辑:好的,这是我基于vcsjones的回答所做的: # save rev of the current earliest commit OLDBASE=$(git rev-list --max-parents=0 HEAD) # create a new orphan branch and switch to it git checkout --orphan newbranch # make sure it's empty git rm -rf . # create a new empty commit in …
135 git 

11
git reset --soft的实际用途?
我已经与git合作了一个多月。确实,我只是昨天才第一次使用了重置,但是软重置对我来说仍然没有多大意义。 我了解我可以像使用一样使用软重置来编辑提交,而无需更改索引或工作目录git commit --amend。 这两个命令真的相同吗(reset --softvs commit --amend)?有什么理由在实际中使用其中一个?更重要的是,reset --soft除了修改提交,还有其他用途吗?
135 git 

10
如何从远程分支机构中挑选樱桃?
我在摘樱桃时遇到麻烦。在本地计算机上,我目前在“ master”分支上。我想从另一个分支“ zebra”中提交提交。“斑马”分支是一个远程分支。 所以git状态: # On branch master nothing to commit (working directory clean) 好的,现在我尝试挑选我想要的提交: git cherry-pick xyz fatal: bad object xyz 其中“ xyz”是我感兴趣的提交的签名,发生在分支“斑马”上。 所以第一个明显的问题是,为什么git无法找到我正在引用的提交?老实说,我真的不明白这是如何工作的。git是否在我的工作目录中为其他所有分支存储类似本地提交数据库的内容?执行cherry-pick命令时,它会搜索本地数据库以找到我正在谈论的提交吗? 由于“斑马”是一个远程分支,因此我一直认为我没有本地的数据。所以我切换了分支: git checkout zebra Switched to branch 'zebra' 因此,现在在本地计算机上,我可以看到目录中的文件正确反映了zebra的状态。我切换回主服务器,尝试再次进行选择(希望提交数据现在可用),但是我遇到了同样的问题。 我对这里发生的事情有一个根本的误解,任何帮助都会很棒。
135 git 

4
gitignore不忽略文件夹
在项目的根目录下,我有一个foo文件夹。在foo文件夹中,我有一个bar文件夹。我想忽略对文件bar夹内所有文件的所有更改。我在我的gitignore: /foo/bar 该文件夹已选中:它存在并且其中有要忽略的文件。gitignore是committed。但是,我有一个要修改的文件,并且位于我的bar文件夹内。当我打字 git status 在我里面,我git bash看到应该被忽略的文件。原因可能是什么?如何成功忽略bar文件夹中的所有文件? 请注意,以前用同一行忽略了这些文件,但是我不得不将该行临时删除到commit服务器上的某行。之后commit,我把线放回去gitignore。这是前一阵子,但现在我注意到文件将在中git status。我希望能够修改被忽略的文件而不会出现在中git status。
135 git  gitignore 

17
如何将我的秘密密钥和密码安全地保存在版本控制系统中?
我在版本控制系统中保留了重要的设置,例如开发和生产服务器的主机名和端口。但是我知道,将秘密(例如私钥和数据库密码)保存在VCS存储库中是一种不好的做法。 但是像其他设置一样,密码似乎应该进行版本控制。那么保持密码版本控制的正确方法是什么? 我想这将涉及保持秘密,在自己的“秘密设置”文件,并有该文件的加密和版本控制。但是什么技术呢?以及如何正确执行此操作?有没有更好的方法可以完全解决这个问题? 我通常会问这个问题,但是在我的特定实例中,我想使用git和github存储Django / Python站点的秘密密钥和密码。 同样,当我使用git推/拉时,理想的解决方案也会做一些神奇的事情-例如,如果加密的密码文件更改了运行的脚本,该脚本会要求输入密码并将其解密到位。 编辑:为清楚起见,我正在询问在哪里存储的生产秘密。

3
git am和git apply有什么区别?
双方git am并git apply可以用来应用补丁。我看不出有什么区别。我现在看到了一个不同:git am自动提交而git apply仅触摸文件但不创建提交。那是唯一的区别吗?
134 git  patch 

7
使用Git删除本地分支
我已经用谷歌搜索,关于这个话题有很长的话题,但似乎没有一个有用。我想我做错了。我有一个名为的分支Test_Branch。当我尝试使用推荐方法将其删除时,出现以下错误: 无法删除在“ [目录位置]”签出的分支“ Test_Branch”。 除此之外,我没有其他信息。我可以轻松删除远程分支,但本地分支不会消失。
134 git 

6
如何缩小.git文件夹
我目前的基地总规模约为 200MB。 但是我的.git文件夹的大小却惊人的5GB(!)。由于我将工作推送到外部服务器,因此不需要任何重要的本地历史记录... 如何缩小.git文件夹以释放笔记本上的一些空间?我可以删除所有早于30天的更改吗? 非常感谢您的帮助:)
134 git 

3
如何撤消git中的结帐?
我刚刚从本地git仓库中签出了更早的提交。我没有对其进行任何更改,我只是在查看它。现在,我想回到我的最新提交-我该怎么做? 我用来检查的确切命令: git checkout e5dff6b3c5d704f9b598de46551355d18235ac08 现在,当我键入git log时,在顶部,我看到了这个已检出的提交,但是以后都没有。我是不是不小心删除了那些?
134 git 

30
在gitlab上获取权限被拒绝(公钥)
我的问题是我无法从GitLab推送或获取。但是,我可以克隆(通过HTTP或SSH)。尝试推送时出现此错误: 权限被拒绝(公钥)致命:无法从远程存储库读取 从我看过的所有线程来看,这是我所做的: 在计算机上设置SSH密钥,并将公共密钥添加到GitLab 完成配置--global以获取用户名和电子邮件 通过SSH和HTTP克隆,以检查是否可以解决问题 完成ssh -T git@gitlab.com命令 如果您对如何解决我的问题有任何见解,将不胜感激。
134 git  ubuntu  ssh  gitlab 



6
合并git后git-svn dcommit危险吗?
我尝试git-svn的动机是轻松进行合并和分支。然后我注意到那个人git-svn(1)说: 不建议在打算从中删除的分支上运行git-merge或git-pull。Subversion并不代表以任何合理或有用的方式进行合并;因此使用Subversion的用户无法看到您进行的任何合并。此外,如果您从SVN分支的镜像git分支合并或提取,则dcommit可能会提交到错误的分支。 这是否意味着我无法从svn / trunk(或分支)创建本地分支,修改,合并回svn / trunk,然后进行dcommit?我了解svn用户会看到与svn 1.5.x以前版本合并时相同的混乱局面,但是还有其他缺点吗?最后一句话也让我担心。人们通常会做这类事情吗?
133 svn  git  merge  branch  git-svn 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.