javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

将Git存储库从GitHub分叉到GitLab

假设我想对其他人的项目实施修复。 该项目位于GitHub上。

我可以在GitHub上创建一个fork并实现此修复程序。

但是,我想在GitLab而不是GitHub上创建我的fork。

那可能吗? 怎么样?

我已经阅读了这篇文章:[https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/]

无论如何,我不确定该怎么办。

  • 我是否应该以某种方式在GitHub的项目的GitLab上创建一个fork?
  • 还是应该在GitHub的项目的GitLab上创建镜像?
  • 还是应该在GitLab上创建一个镜像,然后分叉该镜像?
  • 还是我应该做一些完全不同的事情?

什么是正确的方法。

谢谢。

更新

GitLab上的存储库镜像可能没有意义。 我可以在GitLab上创建MY GitHub存储库的镜像,但不能创建其他人的存储库的镜像。

[HTTPS://docs.git lab.com/哦哦/workflow/repository_mirroring.HTML]

到目前为止,这是我所做的:

我已经将原始GitHub项目克隆到了本地机器上。 我已将修复程序提交到本地存储库中的新分支。 我在GitLab上创建了一个空项目。 我已经将本地存储库中的源设置为GitLab上的那个空项目,并将两个分支都推送到GitLab。 我已经在本地存储库中将上游设置为GitHub存储库。

当我想从原始GitHub存储库获取新的提交到GitLab上的存储库时(即同步存储库),可以使用本地存储库作为中间步骤来完成此操作。 但是,GitHub上的存储库和GitLab上的存储库之间没有直接连接。 我的设置正确吗? 如果我在GitHub上进行分叉,有什么区别吗?

trans by 2020-02-29T11:33:08Z

githooks-跟踪.git / hooks中的钩子更改

有没有办法跟踪git hook的变化? 我有三个仅在我的机器上显示的钩子,而不是在其他开发人员获取时显示的钩子。 尝试git add不起作用。

trans by 2020-02-29T11:13:42Z

告诉git忽略符号链接

这个问题在这里和这里都以类似的形式出现,但是它们似乎与我所寻找的不匹配。

我正在使用Ruby静态站点生成器StaticMatic进行项目。 基本上,这只是一个带有Haml模板,Sass和CoffeeScript的src /目录。 StaticMatic提供了一个开发服务器来将它们不断编译到一个静态站点中,并提供了一个在build /中生成静态站点的生成命令。

我对StaticMatic的修改是允许添加src / _modules / foo /,其中可能包含src / _modules / foo / bar.haml。 运行服务器或构建站点时,将在src / bar.haml中创建一个符号链接,该链接指向foo /中的文件。

到目前为止,一切都很好。 (处理冲突等)

_modules /中的单独目录背后的原因是,它们可以作为git子模块进行跟踪,并由其他团队独立检出。 从本质上讲,这允许多个团队在一个静态站点中的不同页面(实际上是JS应用程序)上工作,而无需重复主布局等。

困难在于git希望将这些符号链接视为文件。 例如src/_modules/bar/foo.haml显示:

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be commited)
#
#       src/_modules/bar/foo.haml
#       src/foo.haml

...当我真的只想要它显示src/_modules/bar/foo.haml而忽略src/foo.haml

一种方法是让我的链接生成代码将链接附加到.gitignore,但以编程方式弄乱.gitignore会使我感到容易出错。 (也许这种担心是不合理的?)

我理想的解决方法是:

[filetype = link]

...在.gitignore中。 据我所知,这是不可能的,或者是吗?

trans by 2020-02-29T10:54:01Z

从TFS迁移到Gi

是否可以从TFS 2008迁移到Git,并仍然保留所有历史记录等?我见过一些有关通过SVN做到这一点的参考,但这似乎相当复杂,并且使我在工作中引入Git的任务变得复杂。

trans by 2020-02-23T01:19:01Z

github-从gi还原特定的提交

我有很多提交和很多文件的git树。 现在,我想还原仅涉及文件的特定提交。 解释:

> git init
Initialized empty Git repository in /home/psankar/specific/.git/
> echo "File a" > a
> git add a ; git commit -m "File a"
[master (root-commit) 5267c21] File a
 1 file changed, 1 insertion(+)
 create mode 100644 a
> echo "File b" > b
> git add b; git commit -m "File b"
[master 7b560ae] File b
 1 file changed, 1 insertion(+)
 create mode 100644 b
> echo "File c" > c
> git add c; git commit -m "File c"
[master fd6c132] File c
 1 file changed, 1 insertion(+)
 create mode 100644 c
> echo "b and c modified" > b ; cp b c
> git commit -a -m "b and c modified"
[master 1d8b062] b and c modified
 2 files changed, 2 insertions(+), 2 deletions(-)
> echo "a modified" > a
> git commit -a -m "a modified"
[master 5b7e0cd] a modified
 1 file changed, 1 insertion(+), 1 deletion(-)
> echo "c modified" > c
> git commit -a -m "c modified"
[master b49eb8e] c modified
 1 file changed, 1 insertion(+), 1 deletion(-)
> git log --pretty=oneline c
> git log --pretty=oneline c | cat
b49eb8e03af331bddf90342af7d076f831282bc9 c modified
1d8b062748f23d5b75a77f120930af6610b8ff98 b and c modified
fd6c13282ae887598d39bcd894c050878c53ccf1 File c

现在,我只想还原两个提交b49eb8和1d8b06而不将更改还原到a。 IOW仅还原文件中的提交(不还原其他文件中的其他中间提交(可能是数千个)),这怎么可能?

trans by 2020-02-22T18:46:06Z

合并-Git:防止在master分支中提交

(为简单起见),我的Git-repo中有master分支和--no-ff。我想确保dev分支始终正常工作,所以我所做的所有工作都应该在dev分支中。

但是,当我将更改与master合并在一起时,我倾向于留在--no-ff分支中,然后继续工作(因为我忘记签出dev分支)。

我可以为master分支建立一条规则,该规则指出我无法进行提交,并且不能进行快速合并,但是只有--no-ff从另一个分支进行合并?

这必须适用于私有托管存储库(ergo不适用于GitHub和BitBucket)。

trans by 2020-02-22T02:43:16Z

如何从另一台计算机“ git clone”?

在一台机器(IP地址192.168.1.2)上,我通过以下方式创建了一个Git存储库

$ cd /home/hap/working
$ git init
$ (add some files)
$ git add .
$ git commit -m 'Initial commit'

我在同一Wi-Fi网络上还有另一台计算机。 如何从另一台计算机上克隆?

trans by 2020-02-22T01:39:56Z

git使用什么算法来检测您的工作树上的更改?

这是关于git status的内部信息。

我一直在阅读出色的“ Pro Git”书,并了解一些有关git在内部如何工作的知识(有关SHA1,blob,引用,树,提交等)。 顺便说一句,非常聪明的架构。

因此,在上下文中,git将文件的内容作为SHA1值引用,因此仅通过比较哈希值就可以知道特定内容是否已更改。 但是我的问题特别是关于git如何检查工作树中的内容是否已更改。

天真的方法会认为每次运行git status或类似的命令时,它将搜索工作目录中的所有文件,计算SHA1并将其与最后提交的SHA1进行比较。 但这对于像Linux内核这样的大型项目而言似乎效率很低。

另一个想法可能是检查文件的上次修改日期,但我认为git不会存储该信息(克隆存储库时,所有文件都有新的时间)

我确信它正在以一种有效的方式做到这一点(git确实非常快),有人知道如何实现吗?

PD:只是添加了一个有趣的有关git索引的链接,特别指出该索引保留有关文件时间戳的信息,即使树对象没有。

trans by 2020-02-22T00:40:46Z

Git恢复Heroku中的最后一次提交

我做了一个承诺,并将其推到了起源和heroku

然后我意识到这是错误的,所以我做到了

git reset --soft HEAD^ 

但是当我向Heroku推销时

To git@heroku.com:app.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@heroku.com:app.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

我了解这个问题。 我应该如何进行? 我如何还可以恢复上一次的heroku提交? (我认为这是最好的解决方案)

trans by 2020-02-21T03:55:52Z

git pull-Git:如何检查本地存储库是否最新?

我想知道我的本地仓库是否是最新的(如果不是,理想情况下,我想查看更改)。

如果不进行git fetchgit pull怎么办?

trans by 2020-02-21T02:26:48Z

git-如何在几个分支上同时工作

这是关于创建分支的此问题的后续措施。

我仍然可以在一个存储库上工作,这使我感到奇怪,因为本地计算机上的文件将是各种实验的奇怪组合。

我想最好的方法是复制存储库并在每个分支的计算机上的不同文件夹中工作-但我不知道如何设置它。 我当前的存储库位于Documents / San / CompProj,那么我将使用哪些命令来创建绑定到不同本地文件夹中不同分支的新存储库?

Git对我来说还很陌生,所以我很喜欢您可以对我在上面假设/提出的问题进行的任何更正。

trans by 2020-02-20T12:50:52Z

ubuntu-git列出所有可用的命令

是否有可以向我显示GIT中所有可用命令列表的命令? 有git help,但显示:

usage: git [--version] [--exec-path[=<path>]] [--html-path]
           [-p|--paginate|--no-pager] [--no-replace-objects]
           [--bare] [--git-dir=<path>] [--work-tree=<path>]
           [-c name=value] [--help]
           <command> [<args>]

The most commonly used git commands are:
   add        Add file contents to the index
   bisect     Find by binary search the change that introduced a bug
   branch     List, create, or delete branches
   checkout   Checkout a branch or paths to the working tree
   clone      Clone a repository into a new directory
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   fetch      Download objects and refs from another repository
   grep       Print lines matching a pattern
   init       Create an empty git repository or reinitialize an existing one
   log        Show commit logs
   merge      Join two or more development histories together
   mv         Move or rename a file, a directory, or a symlink
   pull       Fetch from and merge with another repository or a local branch
   push       Update remote refs along with associated objects
   rebase     Forward-port local commits to the updated upstream head
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index
   show       Show various types of objects
   status     Show the working tree status
   tag        Create, list, delete or verify a tag object signed with GPG

See 'git help <command>' for more information on a specific command.

我只想列出没有说明的内容。

trans by 2020-02-20T08:22:54Z

使用(END)在Git命令期间Git Windows命令提示符卡住了

我安装了用于Windows的Git安装程序(msysgit),最近几天它运行良好,今天我遇到了一个奇怪的错误。

在Windows命令提示符或与msysgit捆绑在一起的Git Bash中发出Git命令时,出现奇怪的'(END)'行,然后我无法发出任何其他命令。

alt text

此时,我得到的只是系统提示音。

有任何想法吗?

谢谢,P。

trans by 2020-02-20T01:24:21Z

github-对git push进行故障排除-它要求用户/密码

我在新的git linux计算机上使用git。 当我执行git push时,我要求输入用户名/密码。

我已经正确设置了git,实际上将回购从github克隆到新文件夹中的工作非常完美(使用我的公共密钥,而不是只读副本)。 当我尝试从以前的克隆推送到相同的存储库时,系统会提示我输入用户名/密码。

当然,将ssh放入git@github.com是可行的,并且我确保在github中配置了我的公钥。 任何想法如何继续调试?

trans by 2020-02-19T23:26:39Z

git-发生10分钟错误后,在构建jenkins项目超时时

我正在使用jenkins构建我的git远程项目。 问题是日志显示“ 10分钟后超时”。 接收对象开始,并且有56%的事件发生。

trans by 2020-02-19T18:42:04Z

Git嵌套子模块和依赖项

假设我有四个名为Core,A,B,Super的项目。 依赖关系树是这样的:

Super ---> Core
       |-> A -> Core
       |-> B -> Core

我希望每个项目都是独立的,也就是说,我希望能够检出并单独编译每个项目(当然每个项目都具有依赖项)。

我考虑过将每个项目映射到存储库,然后使用子模块引用依赖项,但是这种方法存在以下问题:

  1. 当检查Super及其所有依赖项时,我最终得到了Core的三个副本。
  2. 由于子模块是完全独立的,所以这三个副本中的每一个都可能指向Core的不同修订版,这很混乱。

所以...我想念什么吗? 我是否误解了git子模块或滥用了它们? 是否有其他解决此问题的方法(除了诉诸二进制依赖性之外)?

trans by 2020-02-19T15:45:39Z

SVN-是什么使DVCS中的合并变得容易?

我在Joel上阅读有关软件的文章:

通过分布式版本控制,   分布式部分实际上不是   最有趣的部分。

有趣的是,这些   系统根据变化而不是思考   在版本方面。

在HgInit:

当我们必须合并时,Subversion   尝试查看两个修订版本-我的   修改的代码,以及您修改的   代码,它试图猜测如何   将它们粉碎成一个大的邪恶   一团糟。 通常会失败,产生   页面和“合并冲突”页面   并不是真正的冲突,只是   Subversion失败的地方   弄清楚我们做了什么。

相比之下,我们在工作时   在Mercurial中,Mercurial是   忙于保存一系列变更集。   因此,当我们想要合并我们的代码时   一起,水星实际上有一个   更多信息:它知道   我们每个人都改变了什么并且可以   重新应用这些更改,而不是   只看最终产品,   试图猜测如何把它   一起。

通过查看SVN的存储库文件夹,我的印象是Subversion将每个修订都保留为变更集。 据我所知,Hg同时使用变更集和快照,而Git仅使用快照来存储数据。

如果我的假设是正确的,那么必须有其他方法可以使DVCS中的合并变得容易。 那些是什么?

*更新:

  • 我对技术角度更感兴趣,但是可以接受非技术角度的答案
  • 更正:
    1. Git的概念模型完全基于快照。 快照可以作为其他快照的差异存储,只是差异仅用于存储优化。 –RafałDowgird的评论
  • 从非技术角度:
    1. 这仅仅是文化上的:如果合并困难,DVCS根本无法工作,因此DVCS开发人员投入了大量时间和精力来简化合并。 CVCS用户OTOH习惯了糟糕的合并,因此开发人员没有动力使其工作。 (为什么当您的用户为您的产品付钱时,您也付出了同样的价钱?)
      ...
      回顾一下:DVCS的重点是拥有许多分散的存储库,并不断地来回合并更改。 如果没有良好的合并,DVCS就毫无用处。 但是,CVCS仍然可以在糟糕的合并中幸存下来,尤其是在供应商可以限制其用户避免分支的情况下。 –JörgW Mittag的答案
  • 从技术角度来看:
    1. 记录真实的DAG历史记录确实有帮助! 我认为主要的区别是CVCS并不总是将合并记录为变更集并与多个父级一起丢失某些信息。 – tonfa的评论
    2. 因为有合并跟踪功能,而且更基本的事实是每个修订版都知道其父级。 ...当每个修订(每个提交)(包括合并提交)了解其父级(对于合并提交意味着拥有/记住多个父级,即合并跟踪)时,您可以重构修订图(DAG =直接非循环图) 历史。 如果您知道修订图,则可以找到要合并的提交的共同祖先。 而且,当您的DVCS知道如何查找共同祖先时,您无需将其作为参数提供,例如在CVS中。

      请注意,两个(或更多)提交中可能有一个以上的共同祖先。 Git使用所谓的“递归”合并策略,该策略合并合并基数(公共祖先),直到您剩下一个虚拟/有效的公共祖先(以某种简化方式),并且可以执行简单的三向合并。 – JakubNarębski的答案

还要检查如何和/或为什么在Git中合并比在SVN中更好?

trans by 2020-02-19T04:57:05Z

如何解决“ git pull,致命:无法访问'[https://github.com ... \':]来自服务器的空回复”

当我使用Git命令“ git pull”更新存储库时,失败,消息如下:致命:无法访问“ ...”:来自服务器的空回复。

而且我尝试使用GitHub App,但请注意以下几点:

Cloning into 'renren_mobile'...
warning: templates not found /Applications/GitHub.app/Contents/Resources/git/templates
2014-11-23 13:58:57.975 GitHub for Mac Login[659:11891] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Username for 'https://github.com': "
)
2014-11-23 13:58:58.032 GitHub for Mac Login[660:11915] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Password for '': "
)
fatal: unable to access '...': Empty reply from server
 (128)
trans by 2020-02-18T21:45:41Z

github-Git push master致命:您当前不在分支机构

主人说的是第10次提交。 但是,我最终意识到我在测试中遇到了一些无法解决的问题。

我最终提交了#5,然后慢慢地重新调整了每个提交的开发人员,并不断对其进行了调整,以确保它不会引起该错误。 现在,我实质上已经回到了提交#10的位置,但是进行了许多更改以防止该bug发生。

现在,我想使用我的更改来创建提交#11。 但是当我尝试推动掌握时

fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

    git push master HEAD:<name-of-remote-branch>

这是可以预期的。 但是,实际上我该如何将其推送到我的远程分支?

我尝试了git status,但是得到了:

! [rejected]        HEAD -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/tomhammond/sample.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

当我执行git status时,我看到HEAD detached from 4a74ac3

trans by 2020-02-18T19:03:15Z

为所有子文件夹设置git config值

我知道可以设置覆盖用户级配置的每个存储库配置(即.gitconfig_override覆盖childFolder1)。 是否可以设置git configs来覆盖给定文件夹的所有子文件夹的用户级设置? 即,我有

|--topLevelFolder1
|--\
|   ---.gitconfig_override
|--\
|   ---childFolder1
|       \---[...]
|--\
|   ---childFolder2
|       \---[...]

我希望在childFolder1childFolder2中应用在.gitconfig_override中定义的设置。

我这样做的动机如下:我有一台笔记本电脑,业余时间还可以用于个人项目。 我所有的工作代码都嵌套在一个文件夹中。 当我推动工作git repos时,我需要使用我的工作角色-工作登录名(而不是姓名)和工作电子邮件。 当我推送到自己的个人(github)存储库时,我想使用我的真实姓名和个人电子邮件。

我想到的其他可能的解决方案(和问题):

  • 为“工作”和“娱乐”创建单独的用户,适当设置他们的用户级别设置,并在切换上下文时以适当的用户身份登录(麻烦,再加上我很容易忘记切换)
  • 创建一个脚本,在“ workFolder”中搜索git仓库,并添加/更新其.gitconfig文件以保存适当的详细信息(如果我创建了一个仓库并且忘记在推送之前运行该脚本,那么我将以错误的身份推送)
  • “ hack” git,这样每次创建一个repo时,它都会检查文件路径,并在适当的情况下更新.gitconfig文件(复杂,混乱且几乎可以肯定是错误的方法,而且我也不会 首要线索是怎么做!)

我检查了这个问题,该问题似乎仅包含单个存储库的解决方案,而不是多个存储库。 希望有人会错过这个问题!

trans by 2020-02-18T13:44:29Z

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