标签: git

在git rebase之后缺少提交

A-B-C  Master
 \D-E  Feature
Run Code Online (Sandbox Code Playgroud)

执行rebase命令后git checkout feature- > git rebase master我从feature分支机构提交的所有提交都会消失,所以我A-B-C提交了.在变基之后,feature分支看起来像master.此外,变基不会产生任何错误,但它不会显示"提交已重播"消息,我认为通常它会在变基期间显示.你知道可能导致这种行为的原因吗?

一旦我注意到我的提交消失了,我运行以下命令在git历史记录中找到丢失的代码:git rev-list --all | xargs git grep expression此命令返回了一个提交哈希,但是当我运行git log(因为rebase)时,这个哈希不存在.如果我这样做,git reset --hard missing-hash我可以feature再次看到原始(正确)代码.运行rebase master再次重现相同的问题.

编辑:我刚刚注意到我有一些额外的提交WIP on commit-message,index on commit-message当我这样做git reset --hard missing-hash时可以与它有关git stash / git stash apply

git github rebase

11
推荐指数
1
解决办法
1万
查看次数

什么是合适使用.gitattributes与merge =我们的

我刚刚尝试过第一次使用.gitattributes.我认为我必须做错事,因为它没有工作,因为我认为使用merge=ours属性的目的是为了(?).

我用法的一个例子:

我有两个分支; 一个是"主人",另一个是"GCE-Site"."GCE-Site"分支上的文件具有不同的设置,这些设置也存在于"master"分支上,我不想合并到"master"[或其他分支].

在这两个分支上,我有一个.gitattributes包含以下规则:

README.md merge=ours
config.php merge=ours
.gitattributes merge=ours
.gitignore merge=ours
.cache/ merge=ours
Run Code Online (Sandbox Code Playgroud)

需要规则的所有文件都在根级别加上.cache /文件夹上的所有内容.当我这样做时git merge GCE-Site,所有文件仍然在我不想要的时候合并到主服务器中.

有什么我想念的吗?非常感谢您的帮助.日Thnx

git merge attributes bitbucket

11
推荐指数
2
解决办法
8195
查看次数

git只对文本文件/源代码有用吗?

一个非常菜鸟的问题.

在我的整个项目中使用git也是好的(作为不同存储之间的同步,版本控制不是主要的一点),包括图像,pdf,Word文档,甚至可能是一些exe文件?

它如何跟踪pdf,图像,exe文件的变化,如果有的话?如果它只是因为与HEAD版本存在一些差异而存储整个更改的文件,那么在几次提交后存储库可能会变得非常大.或者它是否仍然只能保存文本文件以外的文件中的增量更改?

底线:对于大型项目的同步,git是否良好(或至少可以接受)?对我而言,如果它不比Dropbox等差,那就足够了(就最终结果而言,GUI不是问题).

git synchronization

11
推荐指数
2
解决办法
2786
查看次数

替代git-repo(aosp repo)

我最近开始研究android开发(aosp)并阅读有关所有android子项目的"repo"工具/包装器.

虽然我认为repo在它的功能方面做得相当不错,但我想知道它是否有任何替代方案.

我认为git子模块已经足够了,但互联网上的很多帖子都不鼓励使用子模块(由于一些"缺点",我认为这些缺点根本不是缺点).

请记住,不同子项目的源代码应该有自己的版本或独立的代码库我不确定git子树是否是一个很好的解决方案.

如果有人可以指出回购或其他任何相关信息的替代方案,那就太好了.

git android android-source git-repo repo

11
推荐指数
1
解决办法
955
查看次数

如何在一个git仓库中拥有多个pod

上下文

我们正在开发一个大型软件平台,其中包括Android,Server,Web和iOS(以及其他人).为了使我们的所有代码保持最新状态,我们将它们全部保存在一个Master repo中(这非常重要,因为我们在所有平台上共享模型,因此提交可能会影响许多不同的平台).

为了处理iOS方面,我们决定将项目分解为模块化pod,以便我们可以轻松地在其他库(也包括pod)中共享它们,因此当我们发布时,我们的客户很容易将我们的api包含在其中他们现有的项目(即我们希望使用cocoapods结构获得cocoapods提供的所有好处).

为了实现这一目标,我已经为每个项目设置了私有规格仓库和pod规格.

tl; dr:我们有一个主git repo,它包含我们所有的代码(多个平台,包括多个不同的pod).我们希望保留此结构,但也能够从repo中的代码创建pod.

我遇到的问题是我可以找到的pod规范的所有文档说你必须使用这种格式:

spec.source = { :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => spec.version.to_s }

让我兴奋的唯一部分是我们的repo不仅包含一个pod(更不用说iOS代码了).

有可能做这样的事情:

spec.source = { :git => 'https://github.com/MyCompany/Master/MyCompanyCoreDir', :tag => spec.version.to_s }

我们非常感谢任何帮助

干杯

靛青

git objective-c ios cocoapods

11
推荐指数
1
解决办法
2157
查看次数

git rebase - 继续,但修改提交消息以在冲突解决期间记录更改?

这是场景:

  • 我在git中重新定义了一个分支,我遇到了冲突并且解决了它们(确实git add和所有事情).
  • 通常情况下,我会git rebase --continue继续运行rebase
  • 我想编辑此提交的提交消息,以解释我在解决冲突时所做的更改

我通常不会这样做,但这种特殊的冲突需要一些严重的重新编码,我觉得需要记录.

我该怎么做呢?我希望有某种git rebase --continue --let-me-edit-the-message-first命令,但我无法在文档中找到它

我知道:

  • 我可以运行git commit,手动复制现有的提交消息然后修改它.我不想这样做. git rebase必须将提交消息存储在某处,因为当它提交时它会将原始消息放入其中.我只想在两者之间插入我的编辑.
  • 我可以运行git rebase --continue,然后使用git rebase -i返回并稍后编辑有问题的提交消息.这要求我记住我在整个(可能很长)的rebase过程中提交的内容.呸.

我有点惊讶,我已经找不到答案了......我希望有办法做到这一点.如果有答案,我很难找到它.我发现混淆git add等等git rm于解决变化的需要或之后(像这样),一般git rebase智慧(比如这个这个),以及许多看似非常特定于特定情况的问题(像这样).

由于我很惊讶我找不到这个答案,所以我有一个第二个问题:是否有更好的方法来记录在rebase期间所做的更改?

git rebase git-rebase

11
推荐指数
2
解决办法
2193
查看次数

如何使用提交消息触发拉取请求的"合并"状态

其他一些一样,我不喜欢默认的"合并拉取请求"按钮行为,所以我在本地命令行中获取了形状,然后推回到repo.我希望能够自动将原始PR解析为"合并".

使用这里指定的魔术字符串(在这里从类似的SO问题中找到)几乎是我想要的.不幸的是,包括closes #123将PR标记为"已关闭",这本身就是"被拒绝"的同义词.

我想知道是否有一种方法可以触发您只需按下按钮时获得的相同"合并"状态(带紫色图标).

到目前为止,我已经尝试将以下内容添加到我的提交消息中,但无济于事:

git merge github

11
推荐指数
1
解决办法
960
查看次数

虽然事实上我删除了存储库,但Android Studio Project表示项目已经在GitHub上了.

我从GitHub中删除了该项目,并希望通过Android Studio重新共享(创建新的存储库),但它仍然认为我已经在GitHub上了.有没有办法重置这个?

git android github android-studio

11
推荐指数
1
解决办法
6030
查看次数

如何在Git/bitbucket中实现'pre-checkout'钩子?

在网上进行大量搜索的结果是pre-checkoutgit 中的钩子还没有实现.原因可能是:

  • 没有实际用途.我有一个案子
  • 它可以通过任何其他方式实现.请告诉我怎么样?
  • 实施起来太难了.我认为这不是一个正当理由

我的问题在于:

我已经实现了pre-commit,post-mergepost-checkout挂钩维护每个分支不同的数据库备份.

场景:现在我提交数据库的备份时使用pre-commithook 保存在文件中.当我签出分支或合并时,使用post-merge&post-checkouthooks 恢复存储在文件中的数据库.现在的情况是,如果有人在提交和签出后对数据库进行了更改,则更改将丢失,因为数据库未备份.结帐成功,因为文件结构没有变化.

所以在这种情况下我想要一个pre-checkout钩子来处理上面场景中备份数据库的任务.

git hook bitbucket git-checkout

11
推荐指数
2
解决办法
2577
查看次数

diff和diff = astextplain有什么区别?

有人能帮我吗.我正在使用Git(GitHub)并尝试*.sql在gitattributes中决定将文件设置为什么.我见过人们用

*.sql diff=astextplain
*.sql diff
*.sql text=auto
Run Code Online (Sandbox Code Playgroud)

我被建议将其设置为第二个选项,但我只是想知道它与其他两个选项有什么区别.

git gitattributes

11
推荐指数
1
解决办法
4664
查看次数