当 Git 或 TortoiseGit 出现冲突时,正确的提交/推送方式是什么?

2024-04-16

我们正在使用 git 和合并工作流程。我们有很多 git 新手(包括 我)要么有 SVN 或 CVS 背景,要么没有版本控制背景 根本不。

这是我们经常遇到的问题。许多团队成员都是 使用 TortoiseGit。由于并发,合并冲突经常发生 改变——或者因为他们没有改变pull每天。一个用户会进行一次拉取操作, 合并冲突,解决合并冲突,然后查看文件列表 被承诺回来。

但是文件列表显示了很多文件,尽管存在合并冲突 仅涉及几个文件。在提交时,他取消选中所有其他文件 他没有参与的变革,提交了结果并推动了 犯罪。

结果:该用户之间其他人所做的所有提交 上一次提交和这次提交是lost!

首先,为什么 Git 或 TortoiseGit 只显示用户拥有的文件列表 列表中无事可做?其次,在这件事上正确的做法是什么 场景 - 从 TortoiseGit 角度来看的任何答案都会有帮助。


你原来的问题是错误的。你的工作流程被破坏了,所以你会遇到很多冲突。你应该解决这个问题。如果您确实遇到合并冲突,树的状态是自动暂存传入的更改,并且需要手动干预的更改将在工作环境中进行。对于每个未暂存的文件,用户需要解决冲突并暂存更改。一旦一切准备就绪,您就可以提交整个变更集。这将是合并提交,因此它不应包含新功能或逻辑。如果您在此期间取消暂存文件,则实际上是用本地副本中的版本覆盖传入的更改。

至于工作流程中更深层次的问题,听起来人们正在直接致力于掌握。这是你的主要问题。没有人应该直接提交给你的主干。相反,人们应该开始在一个新的分支工作。即使更改是针对一个文件,高效的 git 工作流程也非常依赖于分支。一旦分支中的工作完成,您可以将您的分支合并到master,或者将master合并到您的分支。您还可以重新设置分支以避免多次合并提交,尽管我发现这是不必要的。

我的工作流程如下所示:

 # git checkout master
 # git pull
 # git branch newbranch
 .
 .
 Do work
 .
 # git merge master     <!-- Optional to pull in changes from master -->

 .
 .
 # git add <files>
 # git commit
 # git checkout master
 # git merge newbranch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 Git 或 TortoiseGit 出现冲突时,正确的提交/推送方式是什么? 的相关文章

  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • 格里特:! [远程拒绝] HEAD -> refs/publish/master (没有新的更改)

    我做了一些更改 提交了它们并将分支推送到 Gerrit git push gerrit 现在我的更改没有出现在 Gerrit 中 我认为这是因为我手动推送更改而不是使用git 审查 https github com openstack in
  • Git - 创建拉取请求而不分叉

    使用 git 已经有一段时间了 关于 git pull request 有很多教程和解释 其动机是什么等等 我遇到两种情况 1 分叉 git 仓库 我查看了一些公共 git 存储库并决定我想要做出贡献 所以我 通过以下方式创建重复的存储库F
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure
  • 如何克隆特定的 Git 标签

    From git clone 1 手册页 http git scm com docs git clone branch还可以在结果存储库中的该提交处获取标签并分离 HEAD 我试过 git clone branch
  • git 提交错误:检测到大文件

    您好 我正在为 ios 8 1 开发一个应用程序 xcode 我已经使用 googleMaps 框架来实现自动完成功能 当我尝试在 Git 中推送我的项目时 我收到大文件检测错误 后来尝试使用 git lfs 并跟踪 git 检测到的文件
  • 将bitbucket发布到数字海洋

    我本质上是试图使用 bitbucket 来理解 git 的概念 我一直在通过修改本地帐户和 bitbucket 帐户之间的文件来练习版本控制 事实证明这很有帮助 现在我正在尝试弄清楚如何将文件从 bitbucket 或者我猜是 GitHub
  • 为所有子文件夹设置 git 配置值

    我知道可以设置每个存储库的配置来覆盖用户级配置 即 path to my repo gitconfig覆盖 gitconfig 是否可以设置 git 配置来覆盖给定文件夹的所有子文件夹的用户级设置 即 我有 topLevelFolder1
  • Git 在哪里存储标签?

    Git 在哪里存储标签 我执行 git tag v0 1 0 v0 10 0 v0 11 0 但目录 git refs tags是空的 Git 将这些标签存储在哪里 谢谢 它们也可以存储在 git packed refs
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打
  • 部分共享git仓库

    我是 git 新手 我想知道是否支持以下场景 如果支持的话如何支持 即用于设置和更新的 git 命令 可以从三个不同的地方获取存储库 本地 镜像 和 github mirror 完全镜像 local github 镜像 local 但 受版
  • VSTS:在构建过期的情况下自动变基/合并和重新排队构建验证门

    我们最近对 PR 上的构建验证门进行了更改 这样 如果另一个提交在当前 PR 完成之前进入主分支 则构建会 立即 过期 看here https stackoverflow com questions 49418800 vsts invali
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • 有没有一个简单的命令可以将分支转换为标签?

    我即将完成将 哑快照 转换为 git 的繁琐过程 这个过程进展得非常顺利 感谢这个重命名过程 https stackoverflow com questions 6628539 how to tell git that its the sa
  • 如何使用git-svn切换svn分支?

    复制 如何让 git svn 使用特定的 svn 分支作为远程存储库 https stackoverflow com questions 192736 how do i make git svn use a particular svn b
  • Gerrit 和 Active Directory

    我正在尝试设置 Gerrit 以使用我们的公司 Active Directory 进行身份验证 我知道很多人都设法让它发挥作用 但它对我来说不起作用 如果我运行一个ldapsearch命令如下我得到了正确的结果 所以我知道我的搜索字符串是正
  • Phonegap使用命令行工具添加插件

    我是phonegap的新手 我按照phonegap官方网站中定义的步骤使用命令行工具创建项目 nodejs 我成功创建项目并添加平台 但是 当我尝试添加插件时出现以下错误 命令 cordova plugin add https git wi
  • Git - 远程:错误:无法运行钩子/后接收:没有这样的文件或目录

    我收到错误 remote error cannot run hooks post receive No such file or directory 当尝试推送到远程时 接收后文件存在于正确的位置 testnew git hooks 并包含
  • 我应该把 .gitignore 放在哪里才能影响所有项目?

    我应该在哪里放置一个 gitignore文件以便我的所有项目都使用这些设置 我尝试了各种文件夹 只有将其放入项目文件夹中才能使其正常工作 但是设置 当然 仅应用于该项目 而不是我的其他项目 git 包含一个 全局 配置选项 可以告诉它在启动
  • GIT:提交时“致命:无法写入 new_index 文件”

    当我尝试将更改提交到本地存储库时 我收到以下消息 致命 无法写入 new index 文件 As this 线程说明 http luhman org blog 2010 04 05 git fatal unable write newind

随机推荐

  • 在 Spark 中,从哈希映射创建数据帧,其中键作为列名称,值作为行

    我有一个数据框 我有一个列 它是数据框中的地图 如下所示 scala gt df printSchema root A1 map nullable true key string value string valueContainsNull
  • 无法从 vs 2015 安装程序安装 xamarin

    我安装了 vs 2015 升级 1 并尝试从设置中安装 Xamarin 但是当我尝试安装它时 最后收到此错误消息 C Net Xamarin 安装程序在安装此软件包时遇到意外错误 这可能表明软件包有问题 错误代码为2711 我该如何解决这个
  • 订购 NSURL 数组

    我正在将大量图像路径加载到 NSURL 中 这些图像位于按 1 PNG 2 PNG 3 PNG 到 1500 PNG 顺序排列的文件夹中 当我尝试加载它们时 let imagePath path images let url NSURL f
  • 扩展 ActiveStorage::Attachment - 添加自定义字段

    我想扩展 ActiveStorage Attachment 类并添加一个枚举属性以实现附件的可见性 我最初的方法是在 app models 目录中创建一个新文件attachment rb 如下所示 class ActiveStorage A
  • 如何使用 Odoo 从表单字段获取值?

    我在表单视图中有这个字段
  • 测试入口点贡献

    我正在编写一个指定一组入口点的 Python 模块 以便其他主机模块可以发现新的功能 我正在遵循指定的 setuptools 方法官方文档 https setuptools readthedocs io en latest userguid
  • Python - 使 gspread.service_account 采用 python 字典或字符串而不是文件名

    我目前正在使用 google Sheets 并正在使用 python 库gspread使其自动化 我的代码的第一行是导入 gspread 库并使用以下命令登录到服务帐户service account json谷歌控制台给我们的文件 impo
  • TypeScript/TSLint:TSLint 无法通过 baseUrl 识别根相对导入

    我通过以下方式使用根相对导入baseUrl编译器选项在tsconfig json 按照这个解决方案 https stackoverflow com a 42306860 1253298 但我遇到了一个问题 Atom IDE 向我显示如下所示
  • 有没有办法使用 Cereal / C++ 为 std::map 指定更简单的 JSON(反)序列化?

    我正在从事的项目是一个管理大量自定义硬件设备的 C 应用程序 该应用程序有一个供客户端使用的套接字 端口接口 如 GUI 每种设备类型都有自己定义良好的 JSON 模式 我们可以使用 Cereal 来序列化这些模式 但应用程序还需要解析来自
  • 了解 T-SQL stdev、stdevp、var 和 varp

    我很难理解这些统计函数的作用以及它们的工作原理 我很难理解 stdev 与 stdevp 以及 var 等价物的工作原理 有人可以帮我把这些分解成愚蠢的吗 在统计学中 标准差和方差是衡量总体中的指标偏离平均值 通常是平均值 的程度 标准差定
  • 违反 - 未找到父键错误

    我出现以下错误 INSERT INTO GroupMembers VALUES Goldfrat Simon Palm ERROR at line 1 ORA 02291 integrity constraint SHAHA1 IAM IS
  • VS2010/C#4 的 C# 编译器错误 CS1628

    此编译器错误列在 C 编译器错误中MSDN http msdn microsoft com en us library we3011f5 28v vs 90 29 aspx适用于 VS2005 和 VS2008 但不适用于较新的版本 这会让
  • iOS VoiceOver“找不到标题”

    我有一个 UITableView 其中每个 UITableViewCell 有 2 个 UILabels 1 个标题和 1 个内容 标头的 AccessibilityTrait 设置为 header 使用辅助功能检查器检查模拟器屏幕时 我能
  • 如何在React功能组件中添加事件

    我有一个关于 React 函数式组件的问题 特别是关于函数式组件中的函数的问题 例如 import React useEffect from react const Component props gt useEffect gt windo
  • 扫描新指纹时如何触发KeyPermanentlyInvalidatedException

    如上所述here https stackoverflow com a 44926774 3142611 我正在尝试触发KeyPermanentlyInvalidatedException当新的指纹添加到设备但未触发此异常时 MyCode F
  • Python 中可用和已使用的系统内存? [复制]

    这个问题在这里已经有答案了 如何从 Python 获取可用和当前使用的内存 它需要是跨平台的 并且至少可以在 Windows Mac OS X 和 Linux 上运行 我想向我的应用程序中的用户报告没有足够的可用内存来继续 你应该看看psu
  • 使用 XSLT 转换 XML 时保留实体引用?

    使用 XSLT 2 0 转换 XML 时如何保留实体引用 对于我尝试过的所有处理器 默认情况下都会解析实体 我可以用xsl character map处理字符实体 但是文本实体呢 例如 这个 XML gt
  • C# Datagridview 不对 Checkbox 列进行排序

    当我将 Linq to sql 查询绑定到 datagridview 在其间使用 BindingSource 时 默认情况下这些列是可排序的 然而 布尔类型似乎并非如此 对于这些 datagridview 使用复选框列 但是当我单击标题时没
  • .NET 多线程变量访问

    我有一个有 4 个线程的应用程序 GUI 控制器 生产者 消费者 GUI 是不言自明的 控制器在进行一些初始设置后启动生产者和消费者线程 生产者创建项目并将它们放置在 环形缓冲区 的空闲槽中 消费者从 环形缓冲区 中取出项目并将其写入磁盘
  • 当 Git 或 TortoiseGit 出现冲突时,正确的提交/推送方式是什么?

    我们正在使用 git 和合并工作流程 我们有很多 git 新手 包括 我 要么有 SVN 或 CVS 背景 要么没有版本控制背景 根本不 这是我们经常遇到的问题 许多团队成员都是 使用 TortoiseGit 由于并发 合并冲突经常发生 改