javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

git rebase --editor = /某物/其他/ than / vim? (以便于挤压)

我很乐意将vim用作提交的默认编辑器,并且不想更改它。 但是,当涉及到基础调整时,我发现自己压缩了数十个提交,而使用诸如Textwrangler之类的交互式编辑器(用“ pick”替换“ squash”代替了最上面的提交),我发现要轻松得多。

有什么方法可以为一次性rebase命令指定备用编辑器吗?

我知道我可以做到:

:%s/pick/squash/

但这有它自己的小烦恼。

编辑-如评论中所述,您可以通过转到第二行并执行来非常有效地压缩除顶部提交以外的所有内容

:,$s/pick/squash/

(请注意逗号和美元与原始字符不同)

trans by 2020-08-09T23:54:36Z

Git:将分支设置为当前

由于我的项目中使用了子模块,所以我经常发现自己位于“(无分支)”上。 当我还在这些子模块中添加代码时,我在其中提交了这些代码。 然后,当我想推送这些子模块时,我当然需要在一个分支上。 因此,我的问题是:

git(命令行)中是否有方法/快捷方式将本地分支设置为当前提交/ HEAD而不会绕开

git checkout the_branch
git reset --hard <previous commit-ish>

更准确地说,上述“绕行”的真正问题是我暂时将原始HEAD留给checkout-command。 使用git branch -f命令可以避免这种情况(感谢CharlesB)。

trans by 2020-08-09T21:38:20Z

Git:合并到主文件,同时自动选择使用分支覆盖主文件

我正在使用Git来跟踪我的文档乳胶源。 我想让master分支充满适合最终用户发布的文档,因此当有人需要某些东西时,我可以切换到master分支,编译并分发文档。

当手册需要进行重大更新时,我会创建新的分支。 但是,当手册获得批准后,需要将其重新合并到母版中。 从分支合并到master时,我想向Git传递一些命令,说:“忘记合并,只需使用分支中的文件覆盖master中的文件即可。” 有没有办法做到这一点? 具体来说,我想避免每次都打开合并工具。 提前致谢。

trans by 2020-08-09T18:26:34Z

git-jenkins构建完成后,如何将更改推送到github?

我有一个jenkins作业,可从github克隆存储库,然后运行powershell脚本来增加文件中的版本号。 我现在正尝试将该更新文件发布回github上的原始存储库,因此当开发人员提取更改时,他会获得最新的版本号。

我尝试在构建后事件中使用Git Publisher,并且可以毫无问题地发布标签,但是它似乎没有发布任何文件。

trans by 2020-08-09T15:44:01Z

是否可以完全清空远程Git存储库?

假设我在第一次推送到远程Git存储库时犯了一个错误。 我可以以某种方式还原它,以使存储库恢复到其初始状态吗? 我无权访问远程计算机,因此无法删除.git目录。

据我所知,问题是您无法“重置”头部。

这是我(或实际上是询问此问题的同事)所做的(我在这里进行本地“远程”回购,以便任何人都可以测试):

mkdir git-remote
cd git-remote
git init --bare
cd ..
mkdir git-local
cd git-local
git clone ../git-remote .
touch a
git add a
git commit -m "initial"
git push origin master

此时,他意识到自己将错误的内容推送到了远程存储库中。

我唯一的想法是从他的repo && git rm && git push中删除所有内容,这仍然会保留错误的提交,但文件不会再麻烦第二次了。

trans by 2020-08-09T12:01:53Z

Git-在索引中找到单个文件的SHA1

我已使用以下命令将文件添加到“索引”:

git add myfile.java

如何找到此文件的SHA1?

trans by 2020-08-09T11:37:01Z

我如何绘制git repo的代码行历史记录?

基本上,我想在每次提交后获取存储库中的代码行数。

我发现的唯一(非常糟糕的)方法是使用git filter-branch运行.lines(),并在每次提交时运行git reset --hard的脚本,然后运行wc -l

为了更清楚一点,在运行该工具时,它将输出第一个提交的代码行,然后输出第二个提交的代码行,依此类推。 这就是我要工具输出的内容(例如):

me@something:~/$ gitsloc --branch master
10
48
153
450
1734
1542

我玩过ruby'git'库,但是找到的最接近的是在diff上使用.lines()方法,似乎它应该提供添加的行(但不会:例如,当您删除行时,它返回0 )

require 'rubygems'
require 'git'

total = 0
g = Git.open(working_dir = '/Users/dbr/Desktop/code_projects/tvdb_api')    

last = nil
g.log.each do |cur|
  diff = g.diff(last, cur)
  total = total + diff.lines
  puts total
  last = cur
end
trans by 2020-08-09T09:03:33Z

存储库-git repo说它在拉后是最新的,但文件未更新

我有3个回购。 我用作主仓库的裸仓库,在其中进行和测试更改的开发仓库,以及在生产环境中执行脚本的生产仓库。

在测试开发仓库中的更改后,我将它们推送到裸仓库,并使用基本脚本(执行git pull命令)将它们自动下拉到cronjob的产品仓库中。

我按照上述步骤进行了更改,但是更改后的文件不会在产品仓库中更新。

  • 签入更改并将其推送到开发仓库中
  • 拉已经完成到产品仓库
  • 所有仓库的git日志是相同的,并且都显示此更改的签入
  • git branch给我所有仓库的“ * master”
  • 所有回购的git status给我: #在分支主管上 无需提交,工作目录干净
  • git pull给我“已经更新”的dev&prod仓库

使用git扩展进行图形化查看,似乎每个存储库都是最新的,而且位于最前端。

我试过了:

git checkout HEAD  
git pull origin master  
git reset --hard HEAD  
git reset --hard origin/master  
git reset origin/master  

有人可以帮忙吗?

trans by 2020-08-09T07:29:40Z

有没有一种快速的方法来从点或分支原点“ git diff”?

我已经查看了关于使用git diff BASE_HEAD和git版本(HEAD,ORIG_HEAD,FETCH_HEAD等)的各种答案,但是自本地分支开始以来,或者自 上一个基准。

简单来说,我的意思是不必查找并粘贴提交SHA或不必计算我想回溯的提交数量。

git diff BASE_HEAD is close, but it refers to remote which may have diverged since I checked out new branch from it.

我希望有类似git diff BASE_HEAD的东西可用。

...除非已经有一种方法可以做到。 有人知道答案吗?

trans by 2020-08-09T06:11:04Z

git-如何离线安装Windows版Github?

如问题所述,如何在没有互联网连接的情况下为Windows安装Github?如果不可能,那么是否有一些具有以下功能的替代客户端:

  • 支持代理
  • 离线安装程序

我发现smartgit具有离线安装程序,但似乎没有代理支持。

如果没有这样的客户端,那么如何为Windows或其他客户端扩展github的功能? 我的意思是有一种使用某些API进行扩展的方法吗? 任何链接都将有所帮助。

trans by 2020-08-09T05:38:07Z

git-通过将远程服务器上的特定分支与特定本地分支进行比较来创建补丁

我已经与git一起工作了几周,但现在我想为这个开源项目做出贡献。 我通过撤消编辑冲突将工作与最新的远程工具合并,这一切看起来都像在gitk中一样。 现在,我需要针对原始版本(远程)母版的最新版本创建一个补丁。所以我认为以下命令会起作用:

fatal: Invalid object name 'origin'.

但我得到:

fatal: Invalid object name 'origin'.

所以我显然把命令弄错了。 那么,如何通过将远程服务器上的特定分支与特定本地分支进行比较来创建补丁?

trans by 2020-08-09T03:40:44Z

存储库-git恢复在合并过程中删除的单个文件

我目前在'foo'分支中。 我刚运行git merge master。唯一的问题是foo中有一个我想保留的文件。 有没有办法找回它,但保留合并母版中的所有其他更改?

trans by 2020-08-09T03:14:37Z

如何撤消git commit --amend

这个问题已经在这里有了答案:

  • 如何撤消已完成的“ git commit --amend”而不是“ git commit” 10个答案

我不小心输入了git commit --amend。 这是一个错误,因为我意识到提交实际上是全新的,应该使用新消息来提交。 我想重新提交。 我该如何撤消呢?

trans by 2020-08-08T17:39:58Z

git:将文件从另一个分支签出到当前分支(不要将HEAD切换到另一个分支)

我想将另一个分支中存在的文件的不同版本加载到当前分支中。

git help checkout说:

DESCRIPTION
   Updates files in the working tree to match the version in the index or
   the specified tree. If no paths are given, git checkout will also
   update HEAD to set the specified branch as the current branch.

有没有办法签出所有这些文件,但不更新HEAD?

trans by 2020-08-08T16:25:54Z

svn-将存储库从git转换为Subversion

除了这样做的原因,是否存在将整个git存储库转换为Subversion的合理方法?

我只能找到大量有关从Subversion迁移到git以及在这两者之间交换变更集的信息,但是找不到将整个git存储库简单转换为svn的信息。

trans by 2020-08-08T16:05:31Z

为什么git hash-object返回的哈希值与openssl sha1不同?

上下文:我从code.google下载了一个文件(Audirvana 0.7.1.zip)到我的Macbook Pro(Mac OS X 10.6.6)。

我想验证校验和,对于该特定文件,该校验和被发布为862456662a11e2f386ff0b24fdabcb4f6c1c446a(SHA-1)。 git hash-object给了我一个不同的哈希值,但openssl sha1返回了预期的862456662a11e2f386ff0b24fdabcb4f6c1c446a。

以下实验似乎排除了任何可能的下载损坏或换行符差异,并指出实际上有两种不同的算法在起作用:

$ echo A > foo.txt
$ cat foo.txt
A
$ git hash-object foo.txt 
f70f10e4db19068f79bc43844b49f3eece45c4e8
$ openssl sha1 foo.txt 
SHA1(foo.txt)= 7d157d7c000ae27db146575c08ce30df893d3a64

这是怎么回事?

trans by 2020-08-07T08:00:01Z

如何修复Github Travis CI版本中git子模块更新的权限被拒绝(公钥)错误?

我无法更新git子模块,并显示以下错误:

$ git submodule init
Submodule 'build/html' (git@github.com:quadroid/clonejs.git) registered for path 'build/html'
...
$ git submodule update
Cloning into 'build/html'...
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

但是,当我在本地执行相同的任务时,一切正常。

如何解决此问题,以便Travis CI构建能够通过,并且我仍然可以单击存储库中的子模块以将其定向?

trans by 2020-08-06T11:04:39Z

从Xcode 4中的项目中删除git

我刚刚在Xcode 4中创建了一个新项目,我想我已选中“为此项目创建本地git存储库”框。 现在,我想删除此版本控制,因为我只想使用svn运行项目。 这可能吗,还是我必须从头开始创建一个新项目?

trans by 2020-08-06T07:43:19Z

git-查找何时删除行

今天早些时候,我发现git存储库中缺少一些代码。 我知道一些丢失的文本以及它所在的文件,所以我使用了git log -S。但是,唯一回来的是提交,其中我添加了包含丢失文本的行。 文本不在HEAD中,添加的提交也存在于我的分支中,因此我知道分支历史中的某个提交一定已将其删除,但没有出现。

经过一些手动搜索后,结果发现该行在解决合并冲突时被意外删除。 所以我想知道:

  1. 这是镐无法找到删除该行的提交的原因吗?
  2. 在不手动浏览历史记录的情况下,如何找到删除“ missingtext”的位置?

对#1的任何见解都是很好的(我认为git log -S会给我答案),但是我真正的问题是#2,因为我希望将来能够避免这种情况。

trans by 2020-08-06T06:49:34Z

在Windows上使用SSH进行Git

我已经阅读了Tim Davis提供的出色指南,该指南涉及将Git配置为在Windows下与SSH配合使用,以生产Git服务器,从而使我的DVCS占据主要位置。

我正在为我的项目创建克隆。 到目前为止,我已经完成了所有步骤,但是我一直从TortoiseGit获得以下信息:

git.exe clone -v “ssh://Administrator@127.0.0.1:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

bash: Administrator@127.0.0.1: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success

并没有克隆任何东西。

顺便说一句:TortoisePLink出现在此消息出现之前,并询问我:“ TortoisePLink”(我认为此信息是在命令中给出的,即:2998789683968968214017。

我的home变量设置为正确的位置:从Git Bash外壳程序中:

echo $HOME
/c/SSH/home/Administrator

我还尝试使用Putty的plink代替TortoisePLink(在Git和TortoiseGit的安装中)。 这次错误被缩小为:

git.exe clone -v “ssh://Administrator@127.0.0.1:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
trans by 2020-08-06T02:05:21Z

上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共134页