假设我有一个git存储库,并且我一直在使用master,我可以追溯创建一个分支。例如:
A-B-C-A1-D-A2-E
我想让它看起来像这样:
A - A1 - A2
\ \
B - C - D - E
pick deadbee B
pick fa1afe1 C
pick a98d4ba A1
...
具体的用例是当我在一个旧版本分支中选择了一堆提交,它需要进入多个旧版本,我不想在所有这些修订中重复这个选择
本质上,它本来可以作为一个功能或主题分支,但不是这样
标签: Git
windows-xpmsysgitdiffmerge
我刚刚开始使用Git,很可能我错过了一些显而易见的东西,但下面是:
我正在Windows XP上使用msysgit 1.6.2.2
安装时,我选择了选项1“仅使用Git Bash”
我正在尝试编写一个包装器脚本,可以用DiffMerge替换内置的git diff。基于此,我创建了以下批处理文件:
@echo off
REM ---- Switch forward slashes to back slashes ----
set oldW=%2
set oldW=%oldW:/=\%
set
我想忽略所有内容,除了顶级目录中的两个文件和几个目录中的所有内容(带有.gitignore)
我的最高级别是:
*
!/app/
!gbase.php
!list-secret-prices.php
问题是我必须在.gitignore中输入一个条目:
!*
在我想要包含的每个子目录中,它才能工作。我不想在我想要包含的每个目录中都放一个.gitignore。我想处理顶级.gitignore中的所有内容。我在gitconfig文件($HOME/.gitconfig)中进行全局排除
[核心]
exc
我的.gitignore文件如下所示:
> cat .gitignore
.bundle
db/*.sqlite3
log/*.log
tmp/**/*
*~
但是,git不会忽略以~结尾的文件:
> git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "
是否有git命令允许我从git存储库下载一个文件夹结构
我的用例是,我有一个构建服务器,它需要一个“脚本”文件夹作为构建的一部分,我不希望它为了签出该文件夹而克隆整个存储库克隆--depth 1'也不好,因为脚本文件夹外的源代码树中的其他文件相当大。将该文件夹放入子模块中,需要时,只克隆子模块。痛苦的世界-这是svn更好的少数地方之一。使用子模块并不有趣
最后,我们选择了三个选项:
使用wget从github获取数据(使用原始文件视图)
让上游项目将所需的数据子集发布为构建工件
放弃并使用完整的
我目前发布了几个开源项目。通常,完整的源代码以ZIP存档的形式提供,或者在开源repo中签入。这使得分析变得困难
如果软件是在非公共存储库中开发的,则可以获得完整的历史记录。然而,我不想公布全部历史
我想使用git实现以下两种可能性之一:
(i)每个作者提交一次:
每个作者应该有一个提交(提交日期为最终发布日期)。每一次提交都包含代码行,这些代码最终会进入最终版本
(ii)只有最终代码行的原始提交:在此变体中,提交本身的数量将保留。每一次提交都会以这样一种方式进行修改,即只保留最终成为最终版本的
标签: Git
bitbucketrepository
我正在使用TortoiseHG将存储库从BitBucket克隆到硬盘上的本地文件夹中进行工作
我转到要克隆到的文件夹,右键单击该文件夹,然后从“海龟”的关联菜单中选择“克隆”。然后,我将BitBucket中的HTTPS地址作为源地址,并将要克隆到的文件夹的完整路径作为目标地址
但是,当我单击“克隆”时,我不断收到一个错误,抱怨有一个错误404
% hg clone --verbose -- https://username@bitbucket.org/username/projecrepo.gi
目前,我的部署方法只是将一个标准的SFTP上传到我的VPS,但从我所看到的情况来看,我可以通过使用git将任何更改推送到我的服务器来节省大量时间
Git对我来说是一个全新的东西,我在网上苦苦寻找任何有用的信息来帮助我在Win7上进行开发。有人能给我一个详细的介绍或者给我指出正确的方向吗
干杯Git主页位于以下位置:
Windows client for git位于以下位置:
有很多优秀的书籍和学习git的在线教程:
最后,如果您想支持远程存储库,您的服务器(VPS)还需要安装
标题说明了这一点。我的README.md和LICENSE.md当前位于源代码包位置,但当我将其推送到GitHub时,它们位于src文件夹中,而不是在它的外部
我该如何解决这个问题?我想,答案是:@tijs,但它被完全排除在外。我不希望这样,我希望它仍然被提交/推送,但在src文件夹之外。
因此,我创建了回购协议1的分支。我的fork(Repo 1 fork)有一个分支(patch-1)。我已经向回购协议1提交了一份撤销请求。它正在等待合并
我可以将patch-1合并到Repo 1 Fork中吗
另外,我想创建patch-2,最好在Repo 1 Fork master上创建一个新分支吗?您可以将commit patch 1合并到Repo 1的Fork中(我们称之为fork1)。一旦patch1被合并到repo1中,并且您从repo1拉到fork1,您将得到另一个非快进合并(可能),
我是一个新手,当我进行git push时,我会遇到以下错误:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:danreardon/mg_app.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the r
我试图理解如何推动所描述的分支模型
我是否正确地推断,在origin上只有两个分支—master和develop,而其他分支(如发行版、功能和修补程序)仅在本地创建?或者所有这些都应该在源代码中创建
请有人澄清一下这句话:
每个开发人员都会拉和推到原点。但是除了中央集权
推拉关系,每个开发人员也可以从
其他同龄人组成小组…从技术上来说,这意味着什么都没有
Alice定义了一个Git remote,名为bob,指向bob的
存储库,反之亦然
我特别困惑于
Alice定义了一个名为bob的Git r
解释发生了什么的唯一合理方法是使用图表(提交按字母顺序排列)
起始状态:
C (master, HEAD, origin/master, origin/HEAD, ec2/master, devserver/master, devserver/HEAD)
|
B
|
A
然后我又回到了A,因为我在B和C上走错了方向:git签出A
C (master, origin/master, origin/HEAD, ec2/master, devserver/master, devserver/HEAD
在git中,有没有一种方法可以找出已经在特定/当前分支的提交历史记录中的冗余分支?这样我就可以在不丢失任何提交的情况下删除这些冗余分支,并清理我的存储库?事实证明,将所有分支的列表合并到master非常简单,只需调用:
git branch --merged master
然后,您可以执行以下操作来删除它们(小心使用):
我找到了这个解决办法
git branch --merged master | grep -v "\* master" | xargs -n 1 git branch -d
我对zipcar进行了捆绑更新,这是一个本地gem,并获得:
$ bundle update zipcar
Retrying git cat-file -e 78c5245dd174058958a07d6674de7bc037e14ed5 due to error (2/3): Bundler::Source::Git::GitCommandError Git
error: command `git cat-file -e 78c5245dd174058958a07d6674de7bc037e
我对Git还很陌生,试图了解它是如何工作的以及为什么。我有一个正在处理的web项目,我有一个.gitignore文件,其中包含以下行:
www/*
现在,我只需要将www文件夹添加到我的repo中,因此我只向其中添加了一个空的.gitignore文件,并更新了我的主.gitignore文件,如下所示:
!www/.gitignore
www/*
除此之外,现在当我执行git status时,没有需要添加的内容。为了将它添加到staging,我必须执行git add www/.gitignor
我试图从GitHub克隆或拉取存储库,但没有发生任何事情,也没有出现任何错误:(
克隆到“测试”
在这条消息之后没有其他内容。知道我可以在哪里检查错误日志吗?因为同一命令在不同的服务器上工作,但在Amazon EC2实例上不工作。这是防火墙问题吗?Git协议侦听端口9418
git clone https://github.com/test/test.git test
以下是我想做的:
hg克隆
hg分行新科
hg更新新分支机构#移动到新分支机构
在分支代码中做一些更改
hg commit-m“分支中的更改新建分支”
hg更新默认值#移回默认分支
hg merge new_branch#将new_branch合并到默认值中以在默认值中添加更改
hg commit-m“合并”
汞推力
但此时,mercurial正迫使我执行hg push--new branch,将分支添加到远程存储库中。我不想在回购协议中使用分支,我只想在本地创建一个分支,做我想做的所有更改,然
我将一个GitHub项目分叉到自己的存储库中。我的存储库只包含一个“主”分支,我在其中提交自己的代码。分叉项目也只包含一个“主”分支
有时,我会在原始代码中发现并修复一些bug,我希望创建一个pull请求,以便原始项目的开发人员可以添加修复。但是,我不想在这个请求中添加我更改的所有代码,只是修复
我认为正确的方法是在我的存储库中创建一个新分支,将其与原始的forked master同步,提交修复并创建pull请求。我的问题是:如何创建一个分支并摆脱所有的提交,以使其与forked master同
希望这不是重复别人的问题。我知道有很多关于重定基址的话题,但我想了解一下,当同一个分支的两个副本出现在野外时,它是如何工作的
场景:
人员A正在开发新功能
(master) M1 -- M2 -- M3
\
(feature) -- F1 -- F2
人B只是有他自己版本的几乎相同的东西,但少一些提交
(master) M1 -- M2
\
(feature) -- F1
现在,Person
我想创建一个git存储库,并在云中保留它的备份副本。创建一个远程存储库将是一个简单的解决方案,但代码将向任何能够访问云计算机器的人开放,因此会受到损害。目前,我在本地计算机上管理这个git存储库(只针对一个用户),我压缩整个存储库,加密tar球,我将其复制到云服务器。这个解决方案显然很难管理,需要始终对整个存储库进行压缩、加密、上传/下载,而且几乎不可能并行工作(尽管我还没有这样做)。有人能提出更好的解决方案吗?有几种开源加密工具可以解决这个问题
让git用户只能通过ssh访问0700拥有
在这里,我再次与我一周前的回购协议,并开始担心我的开发计算机将下降到游泳池。现在,我想将我的本地回购发送到我存放裸存储库的主机,我必须再次执行以下操作:
git clone --bare my-repo my-repo.git
ssh git@myserver "mkdir /opt/git/placeholder-dir"
scp -r my-repo.git git@myserver:/opt/git/praceholder-dir
cd my-repo
git add remote ori
我处在一个不寻常的工作环境中,我无权改变它。循环如下所示:
$ svn checkout <svn_url>
$ cd repo_name
$ git init
$ git remote add <git_repo>
$ echo "**/.svn" > .gitignore
$ git add *
$ git fetch
$ git merge origin/master
error: Untracked working tree file '.gitignore
我是一名经验丰富的开发人员,独自工作,与内部TFS 2015一起使用VS 2015。不过,我刚刚开始学习TFS、Git和Scrum,所以我还有很多东西要学
在与我的项目经理进行了一些讨论之后,我决定将我所做的一切(甚至包括与家庭相关的非软件项目)组织在一个TFS团队项目下(如讨论和讨论的)
我现在正试图确定代码存储库的最佳命名约定,以及适当的存储文件夹层次结构
最初我考虑采用这样的标准,从左到右缩小范围:
work.customers.joespizza.posapp
work.customer
我有以下两个分支,A应在B的基础上重新设置:
(Ancestor) -> A1 -> A2 -> A3
\
-> B1
我正在尝试将A中的所有提交压缩为1个提交:
(Ancestor) -> B1 -> A123
然而,当我使用git-rebase和squash-commit命令时,git仍然试图一次重新设置一个提交的基础,所以它开始重新设置A1的基础,让我解决冲突,然后重新设置A2的基础,作为再次解决冲突。。。这
因此,我是git环境中的新手,我一直在尝试学习JavaScript,作为我正在学习的课程/书籍的一部分,我必须使用git和Gulp,但我一直难以使用本地Gulp:
$ gulp
module.js:442
throw err;
^
Error: Cannot find module 'C:\Program Files\Git\node_modules\gulp\bin\gulp.js'
at Function.Module._resolveFilename (modul
我开发了一个docker图像,并将其推送到openshift中的docker注册表中。现在我需要通过传递一些ENV变量来运行docker映像。如下所示,当我单击“添加到项目”链接时,我的docker图像“mycustomdaemon:latest”被列出
但是,当我单击该图像时,它要求我提供构建配置和Git存储库URL,如下图所示:
但是,我只需要运行映像,不想重建它或执行任何此类操作。我如何能够使用它来简单地运行创建的自定义docker映像,而不执行任何操纵操作
我试图通过发出ocnewa
我的环境是下一个:
-詹金斯2.46.1
-Gitlab插件1.4.5
-GitLab社区版8.14.3
我配置了一个多分支管道。我试过:
pipeline {
agent any
options {
gitLabConnection('MY_GITLAB')
gitlabCommitStatus(name: 'jenkins')
}
triggers {
gitlab(triggerOnPush: true, trigge
标签: Git
git-rewrite-history
我正在将存储库从TFS转换为Git,出于某种原因,我的历史记录的开头如下所示:
* - Merge from Staging
|\
| * - Foo
| * - Branched from $/TFS/Main
* - Branched from $/TFS/Staging
* - Merge from Staging
* - Foo
* - Branched from $/TFS/Main
D - Merge from Staging (master)
|
| E - copy
这将是一个有点奇怪或愚蠢的问题
我正在使用VS2015 pro
左侧=主分支
右侧=我的工作分支
每次我执行合并到我们的主分支到我的工作分支时,我都会得到额外的换行符(左边的图像)。但代码是相同的,除了上面的空白行。< /P>
如何消除这些额外的空间?你认为这与格式/文本有关吗
谢谢
这似乎是您的diff工具的一个奇怪之处。如果你仔细看,你会发现左侧顶部的“空行”没有任何数字。此外,编辑器中的空间具有对角散列。这只是由diff可视化插入的间距。这不是文件中的额外空行。我不明白为什么它会这样做,因
我在一台Windows机器上工作
当我在IntelliJ中打开一个CRLF文件时,按enter键,然后按backspace键(不应更改),IntelliJ会将该文件标记为已编辑(蓝色)
如果我尝试提交更改,它会显示:
内容仅在行分隔符中存在差异
如果我尝试执行git status,我可以看到git工作正常,并且没有报告任何文件更改
似乎IntelliJ在我转到以下位置之前不会刷新文件:
VCS->刷新文件状态
然后,它将文件显示为未更改
即使我在按enter键之后和按backspace键之前手动
我有一个系统安装在一个没有外部网络访问的区域,我不能把我的计算机带进来。该系统是在GIT存储库中使用所有源代码开发的。自安装以来,已经对存储库的系统本地副本进行了一些修改。由于隔离,我目前并没有办法像开发过程中那个样推出这些更改
我想做的是将4-5次提交导出到“导出文件”,以后可以在现实世界中使用该文件将更改应用到外部存储库,如我的笔记本电脑和Bitbucket。使用。创建捆绑包:
git bundle create update.bundle HEAD~5..HEAD
在接收端使用git-f
我使用react.js构建了web应用程序,我想在每次提交时使用FTP在服务器上进行构建和部署。为此,我配置了bitbucket管道,但在build react应用程序中出现了一个错误
我通过运行“npm run build”命令测试了我的本地计算机,它成功运行,没有任何错误,但在管道上,我得到以下错误:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! react-app@0.1.0 build: `node scripts/build.js
我遇到的情况是,所有开发人员都在开发分支中工作,并且只将所有提交推送到该开发分支。一个看门人将查看这些更改并将其合并到主分支
在詹金斯,我有一个工作是由一个主分支推动触发的。我想设置一个构建后操作,检查构建是否失败,然后向其推送开发分支导致构建失败的开发人员发送电子邮件,而不是将电子邮件发送给将开发人员的更改合并到主分支并触发构建的守门人。如何执行此操作?这是我们遵循的以下步骤,建议使用与此类似的方法:
1) 仅允许合并从PR开发分支
所有开发人员的更改应该只通过PR Pull请求推送到开发分支
我同时使用我的github存储库和客户端git存储库。今天,我修改了我的git代码,并意外地提交了客户端凭据。提交后,我意识到我使用客户端用户名和电子邮件提交了代码,然后我设置了git config--global user.name“myname”和git config--global user.email”ex@gmail.com“将代码推送到我的回购中。代码推送成功。但我的问题是,我可以看到提交是由客户端凭据进行的。他的名字也被加入了投稿人名单。你可以看到下面
我怎样才能从我的贡献者中删除
我的Git Gui不再正常工作-我看不到Gui中的“暂存”和“未暂存”文件列表(因此我无法在单个文件之间切换)
我相当肯定这是一个小故障,但我不知道如何恢复程序的默认设置,以便我可以看到这些
我正在使用Windows10。到目前为止,它工作得很好——然后不知何故,程序以我无法恢复的方式最小化了。我使用“CTRL+Space”打开程序的windows菜单,并“最大化”程序,使其可见-然后将窗口大小拖动到更易于管理的大小(因此它不会填满屏幕)。这个过程以某种方式删除了文件列表(通常位于程序的左侧)
假设我有两个reposr1和R2,它们使用一个公共子模块
到了建造它们的时候,我看到了两种可能的方法
在特定提交时保持子模块处于分离状态
始终使用$git pull将其更新为最新更改
哪种做法是最好和最安全的
谢谢 两个存储库在子模块存储库中都有对提交的独立引用。如果要更改提交,则必须在父存储库中提交更改的子模块提交id
在特定提交时保持子模块处于分离状态
子模块中始终存在某个已签出的提交。可能有指向该提交的分支,也可能没有。父存储库只知道当前应签出的提交的id
始终使用$git pull将
我正在使用gitp4执行从perforce到git的迁移。我需要将我的git repo与Performce server保持同步。我只需要知道git-p4在git p4克隆后以及以后用于git p4同步的perforce depot的信息存储在哪里。对于基本设置,git p4使用。如果需要,可以使用覆盖
使用gitp4 syncgit依赖于p4 depo语法+客户端配置来确定从何处提取更改
如果您想知道从P4 CLs创建的实际修订版在哪里,那么它们都被放入了,对于基本设置,git P4使用了。如
当使用git diff查看两个分支之间的变化时,我经常看到意外的结果。我想理解为什么git有时会认为一行内容在两个文件中是相同的,而该行内容却发生了变化。有什么隐藏的东西正在改变吗?或者git在比较文件时正在做什么?情况并非总是如此,但我发现它偶尔会发生,我很想知道为什么
关于主人。。。
函数a(){
做某事;
}
关于开发。。。
函数a(){
做某事;
}
函数b(){
做点别的事吧;
}
git diff示例1
git diff示例2
偶尔我也会看到这种类型的输出。(请注意,最后一行不是
我有本地git存储库,目录中有.gitignore和.gittributes文件。
git忽略了my.svg文件,但它不在.gitignore文件中
# CakePHP specific files #
##########################
/config/app.php
/config/.env
/logs/*
/tmp/*
/vendor/*
# OS generated files #
######################
.DS_Store
.DS_Store?
我正在进行我的项目,并成功地将其推送到GitHub。一切都进行得很顺利,不知怎么的,我把项目搞砸了,我删除了本地版本,然后去GitHub,用下载图标下载整个项目
在完成项目并做了一些更改之后,当我试图将其推到原始版本时,它显示了以下错误
To https://gitlab.rz.uni-bamberg.de/abc/def/bla.git
! [rejected] master -> master (fetch first)
error: failed to push so
假设我有一个新特性,所以我创建了一个新分支。这个分支是一个将持续很长时间的辅助项目,因此我最终将主项目合并回它,以保持它的最新状态。这种情况已经发生了50次,因为我一直在更新它,并在功能上不断改进,其中许多功能在master的两次合并之间不会有任何发展。我的问题出现在合并和推送时间,因为我的遥控器最终被一些嘈杂和丑陋的合并阻塞了历史。另一个例子是每天合并到您的开发分支,以跟上项目的最新情况,但不积极开发任何东西,但一旦合并,就会淹没历史
我认为这是一个简单的例子,但它可能涉及更多的分支和合并。在
我使用K6进行负载测试
我已经从这里克隆了K6、Grafana、XDB docker compose设置:
使用Docker的说明位于本页底部(),如下所示:
git clone 'https://github.com/loadimpact/k6'
cd k6
git submodule update --init
最后一行是什么意思?(git子模块更新--init)。我看不出它在做什么
此外,这是否是仅在您第一次克隆此解决方案时才需要的一次性操作
我将向克隆的解决方案添加我自己的测试,删除
我一直在尝试通过http代理(在git global config中设置)从企业GitHub服务器上克隆UbuntuAWS实例中的git存储库
从代理进行克隆是可行的,但从实例(通过代理)进行克隆会出现以下错误:
致命:无法访问'https://githubserver.company.com/repository.git/“:服务器证书验证失败。CAfile:/etc/ssl/certs/ca-certificates.crt文件:无
我已经尝试下载服务器证书,将其添加到我的受信任证书中,并在
我有一个实验分支(不在任何远程存储库中),我只想保留它的头部,然后再将其与master合并
git log --graph --all --oneline --decorate
* c44824d (HEAD -> experiment) amazing experiment
* 66650f0 embarrasing commit
* 0a0289d embarrasing commit
* cc0e9b6 embarrasing commit
* a9e76f0 embarrasin
您好,我正在为中的java编写教程,希望在不同的开发阶段包含相同的文件
我正在寻找类似的东西,但能够指定提交版本。
#+包括:“./conect_-four/src/main/java/conect_-four/App.java”src-java-n
我对git和spaceman都比较了解,如果这是一个简单的问题,我很抱歉
使用集成到Delphi10.3中的Git,我可以提交到本地存储库,但在提交到Github时需要帮助。我可以在VisualStudio中执行此操作,但不能在Rad Studio中执行。请帮忙 最初,在Rad Studio中,我能够创建本地存储库并提交给它。但是,如果有一种方法可以从Rad Studio向github进行初始推送,我还没有找到它。[我现在有了。请看下面。]每次尝试推送时,我都会看到下面的屏幕。请注意,按钮上显示“导入”
我第一次尝试时看到的
我的解决方案是下载github桌面。从那里
几个月前,我创建了一个名为a的GitHub存储库,它是一个VS代码扩展。我在市场和NPM上发布了它。
然后我创建了另一个名为B的repo,它包含一个子模块:存储库a
现在,我想对VSCode扩展做一些更改。我应该更新哪个存储库?回购协议A还是B?如何使这两个存储库保持同步
文件夹结构为:
repoB
|_ .git
|_ assets
|_ repoA
|_ .vscode
|_ assets
|_ img.png
|_ themes
|_ my-theme-them
假设我有两个文件,有两个类,A和B。有时,类B似乎只在类A中使用,从代码设计的角度来看,将B放在A中并将其声明为私有是完全合理的
现在,如果我必须执行这样的任务,我只需将源代码从一个文件复制到另一个文件,然后删除现在为空的文件。缺点是版本控制历史记录并没有完全丢失,但显然无法再被发现
例如,对于那些指责B源代码的人来说,这看起来像是我从头开始创建了这个类,而这个人需要去查看实际的提交以了解真正发生的事情,然后检查删除文件的历史记录。相比之下,如果我只是移动文件,版本控制显示源代码有一系列更改,然
我正试着把注意力集中在子树合并上。让我们使用一个项目作为另一个项目的子树,然后有机会通过获取工具更新第一个项目(反之亦然)。我们的工作流程如下:
$ git init subtree-project
$ cd subtree-project
$ echo foo > foo.TXT
$ git add .
$ git commit -m v1
$ cd ..
$ git init main-project
$ cd main-project
$ echo boo > boo.TXT
1 2 3 4 5 6 ...
下一页 最后一页 共 1305 页