在本地系统上模拟多个用户/提交者

2024-04-25

从我的书中,我试图学习如何在本地系统本身上模拟多个 git 用户。我 将假装是所有这些多个用户。我按照书中的说明模拟多个用户对存储库提交更改。本书的输出显示了两个不同的人git log是 被执行。但是,我的输出仅显示一个用户,那就是我。如何吸引更多用户以便我 可以模拟一下场景吗?

commit aed341198f614860bfb68f5fd5845f191773fa36
Author: sid smith <[email protected] /cdn-cgi/l/email-protection>
Date:   date

    Bobs first commit after changing the first line

commit edabfcc8a432b07f92a564147ee6ebb8865f5d18
Author: sid smith <[email protected] /cdn-cgi/l/email-protection>
Date:   date

    Base commit from source

Edit -是否有一个基于网络的 git,我可以通过多个浏览器登录(作为多个用户)来模拟 git 中的多个提交?


你需要改变你的user.name and user.email当你承诺的时候。

为了在不影响 git 配置的情况下执行此操作,您可以为特定提交设置环境变量,以便“以其他人的身份”执行该提交。

GIT_AUTHOR_NAME="anotherName" GIT_AUTHOR_EMAIL="another@email" \
GIT_COMMITTER_NAME="anotherName" GIT_COMMITTER_EMAIL="another@email" \
git commit -m "commit done as another person"

这仅适用于当前提交。
所有其他的都将用user.name and user.email您看到的值git config --global --list.

请参阅“环境变量 http://git-scm.com/docs/git#_environment_variables" of git 联机帮助页 http://git-scm.com/docs/git对于您可以设置的所有变量。

另一种方法是使用以下命令覆盖 git 命令上的配置-c的选项git command http://git-scm.com/docs/git:

git -c user.name="anotherName" -c user.email="another@email" commit -m "..."

(小写'-c',不是大写'-C',这是另一种选择)

设置为别名更容易,在 Windows 中称为doskey https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/doskey.mspx?mfr=true:

dokey gituser1=git -c user.name="anotherName" -c user.email="another@email" $*

(the $*是获取您将传递给该命令的所有其他参数)

您可以将其用作:

gituser1 commit -m "commit done as another person"

我收到一个错误

C:\repo>
GIT_AUTHOR_NAME="Bob" GIT_AUTHOR_EMAIL="[email protected] /cdn-cgi/l/email-protection" 
  'GIT_AUTHOR_NAME' is not recognized as an internal or external command, 
  operable program or batch file.

事实上,Windows shell 不会直接支持该语法。

正如《在Windows中只为一个命令设置环境变量cmd.exe https://superuser.com/a/223126“,您需要输入:

cmd /C "set GIT_AUTHOR_NAME=\"anotherName\" 
&& set GIT_AUTHOR_EMAIL=\"another@email\" 
&& set GIT_COMMITTER_NAME=\"anotherName\" 
&& set GIT_COMMITTER_EMAIL=\"another@email\" 
&& git commit -m \"commit done as another person\""

(一条巨线)

注意 - 在 windows/cmd 中,您必须删除所有反斜杠和最后一个双引号才能使其工作。

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

在本地系统上模拟多个用户/提交者 的相关文章

  • 使用 TortoiseGit 创建 git 克隆时出现 SSL 证书问题

    我想在 TortoiseGit 的帮助下克隆 git 存储库 但出现错误 错误 SSL 证书有问题 请验证 CA 证书是否正常 细节 错误 14090086 SSL 例程 SSL3 GET SERVER CERTIFICATE 访问时证书验
  • 无法将 git add origin git@anything 与新的 git 目录一起使用

    我有一个项目 我正在生成许多提交 因此它占用的空间正在快速增长 由于我有一个 gitlab 页面来推送提交 因此我决定最好删除本地 git 目录中的这些旧提交 因为我始终可以从 gitlab 获取它们 为此 我只需删除本地 git 目录 然
  • 在 GitHub 上执行拉取请求时避免不需要的合并提交和其他提交

    我在 Github 上分叉了一个项目 令远程上游为upstream我的远程存储库是origin 我当地的master分支设置为跟踪远程master分支 然后我在本地添加了一些东西master 时不时与上游汇合 直到今天我想发出pull re
  • 如何在本地快速拉取拉取请求

    在合并拉取请求之前 我想在本地快速拉取请求并运行测试并测试一些内容 我还不想点击 gihub 合并拉取请求 我以为滑轮会有帮助http ejohn org blog pulley http ejohn org blog pulley 但我收
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • 获取最新远程提交的 SHA1 [重复]

    这个问题在这里已经有答案了 可能的重复 git bash 如何检查是否有新的提交可用 https stackoverflow com questions 6006759 git bash how to check if theres a n
  • gitlab 请求将分支 A 合并到开发中(落后 3 次提交)我应该担心吗?

    在 gitlab 中创建合并请求时 我经常收到一条消息 请求将分支 A 合并到开发中 x 提交落后 gitlab想告诉我什么 我应该担心还是需要修复某些东西 什么 一段时间后合并请求在项目中打开时 由于其他人合并了自己的更改 您尝试合并到的
  • 如何解决 VS Code 中变基拉取的合并冲突?

    当我做一个git pull rebase 并且我的提交中存在合并冲突 我得到冲突差异视图 解决所有冲突并暂存文件 然后呢 我可以打开终端并运行git rebase continue但是 VS Code 中不应该有一个按钮来完成变基吗 只需使
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID
  • GIT - 推送到 (GitHub) origin master 没有任何作用

    我已经分叉了某人的 GIT 存储库 https github com nippysaurus toodledo objc 将其克隆到我的本地计算机 显示带有以下信息的来源 remote origin Fetch URL https emai
  • 我可以忽略全局 .gitignore 吗?

    我的全局 gitignore 一般都很棒 但对于这个一次性项目 我不希望应用全局规则 如何删除这个怪异存储库的全局 gitignore 规则 在您的存储库中运行此命令 git config local core excludesfile f
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • 如何让 Gitlab 运行程序在成功构建时将代码合并到分支中

    嗯 标题几乎是不言自明的 总之 如果构建成功 我希望将一个分支 即开发 合并到另一个分支 即生产 我尝试了 jakub kania 解决方案 但我总是得到id rsa invalid format 我认为 gitlab 秘密变量以某种方式被
  • git-svn 如何知道要提交到哪个分支?

    我的存储库是 SVN 我使用 git 进行所有开发 我们有一个标准布局 我用以下命令初始化了我的本地存储库git svn init s
  • 在 Windows 上使用 Git - 意外丢失了大量工作。我可以拿回来吗?

    我很困惑 我想我已经失去了几个小时的工作时间 我之前在 Git 中编辑了一个文件 我保存了它 但没有提交 我确实做了一些其他文件更改 并提交并推送了它们 然而 有一个文件被搞乱了 所以我单击了最后一次成功的提交 然后按了 回滚到此提交 令我
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

    我有一个网站 用于托管 redmine 和几个 git 存储库 这非常适合 http 但我无法使用 https 进行克隆 即 git clone http mysite com git test git 工作正常 但是 git clone
  • 如何使用 git --word-diff 显示空格差异?

    为了说明问题 参见diff https github com nim lang Nim commit 47c7fd037ed28b7de3d120b003d059d30e18f128 diff split diff 8af935b2312d
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo

随机推荐

  • 如何停止在 Visual Studio Code 中复制空白行上的空白?

    在 Visual Studio 代码中 如果您在空白行上按 ctrl c 且没有突出显示任何内容 则会复制该空白行 我认为可能有一个选项可以禁用此功能 但尚未找到它 您应该能够通过配置选项来做到这一点editor emptySelectio
  • 使用 echo 在 php 文件中输出 HTML 代码总是更好吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中回显 HTML 的最简单方法 https stackoverflow com questions 1100354 easiest way to echo html in php Hell
  • 对于实现相同特征的结构,如何克服类型不兼容的匹配臂?

    我正在尝试写cat命令来学习 Rust 但我似乎无法将命令行参数转换为阅读器结构 use std env io use std fs File fn main for arg in env args skip 1 let reader ma
  • Html 表格延伸到屏幕之外

    我有一张桌子 它从屏幕向右延伸 它已固定 并且该宽度大于屏幕宽度 浏览器自动在底部创建滚动条 在右侧的 不可见 区域中显示此表时 如何指示浏览器不创建滚动条 本练习的目的是使用 JavaScript 向左滚动该表 将其内容显示在最初位于屏幕
  • 了解 T-SQL 中的 PIVOT 函数

    我对 SQL 很陌生 我有一个这样的表 ID TeamID UserID ElementID PhaseID Effort 1 1 1 3 5 6 74 2 1 1 3 6 8 25 3 1 1 4 1 2 23 4 1 1 4 5 6 8
  • 以编程方式将提醒添加到“提醒”应用程序

    我正在创建一个简单的笔记应用程序 我想实现提醒 用户可以输入一条注释 点击一个按钮 然后它就会使用文本在 提醒 应用程序中设置提醒 这可能吗 如果可以 我该怎么做 我看过 Apple 关于 EventKit 和 EKReminders 的文
  • 如何在 LINQ 中的子表上创建 where 条件

    这是对此的回应question https stackoverflow com questions 315966 how do you construct a linq to entities query to load child obj
  • 我应该明确地与 None 进行比较吗

    我有一个相对简单的Python代码 import threading class Foo def init self self thread None def start self self thread threading Thread
  • 垂直对齐 DIV

    假设我有 2 个 DIV 一个在另一个之上 如何将顶部文本与 TOP 对齐 并将底部文本与 Bottom 对齐 True 垂直对齐仅在您设置display每个div到table cell div top div bottom display
  • 基于正方形瓷砖直角三角形象限的坐标系中的边界框

    我正在为游戏创建一个基于图块的 2D 地形系统 然而 我还使用游戏中的坐标 需要能够将边界框映射到 图块坐标 中 并点击边界框接触的每个图块 不用担心 有一个 kd 树和所有工作 美好的 使用定点 真实世界 坐标 我可以将每个图块计为 2
  • 计算事件循环中的活动任务

    如何找出事件循环中有多少个活动任务 在文档中我只找到asyncio Task all tasks https docs python org 3 library asyncio task html asyncio Task all task
  • 在运行时添加路由 (ExpressJs)

    我想在运行时添加路线 我读到这是可能的 但我不太确定如何 目前我使用以下代码 var app express function CreateRoute route app use route require routes customcha
  • 由于 StaticLoggerBinder.class 中的重复数据删除错误,Scala SBT 程序集无法合并

    我的问题是我无法再使用 sbt assemble 插件 因为在从事该项目的几个人之间出现了某种依赖项合并问题 我运行 sbt assembly 时出现的问题 错误 合并时遇到3个错误 java lang RuntimeException 重
  • 我们可以在单个 Watchkit 应用程序中创建多个概览界面吗?

    我正在尝试创建一个 WatchKit 应用程序 需要以扫视的形式向用户显示多条信息 有没有办法在这样的应用程序中创建多个扫视 每个申请不能多看一眼 但是没有什么可以阻止您创建一个扫视 它将包含 每个扫视类型 的所有可能状态 然后在运行时执行
  • 在您的应用程序 Swift 代码上启动 Youtube 频道

    我花了几天时间找到从我的应用程序打开 youtube 频道的 Swift 代码 但我根本找不到 有人可以帮助我吗 我需要 Swift 中的代码 Swift 3 和 iOS 10 的更新 好的 下面是如何在 Swift 3 中做到这一点 基本
  • 如何将一个 xaml 页面导航到另一页面?

    我有 2 个页面 我需要将 mainpage xaml 导航到 login page xaml 但它让我崩溃你调用的对象是空的 在 Root Children Clear 我在 App xaml 中添加了以下代码 private void
  • asp.net mvc数据注释验证url

    有人可以告诉我如何验证一个网址吗http www abc com http www abc com 让 System Uri 为您完成繁重的工作 而不是 RegEx public class UrlAttribute ValidationA
  • vs2010 C++ 尾调用优化

    考虑以下代码 int fac aux int x int res if x 1 return res else return fac aux x 1 res x int fac int x return fac aux x 1 int ma
  • 调用视图文件时如何传递参数?

    我使用 Sinatra 和 Haml 编写了一个 Web 表单 用于调用 Ruby 脚本 一切看起来都很好 除了一件事 我需要从 Sinatra Ruby 脚本将参数传递给 Haml 视图文件 这是我的代码的一部分 usr bin env
  • 在本地系统上模拟多个用户/提交者

    从我的书中 我试图学习如何在本地系统本身上模拟多个 git 用户 我 将假装是所有这些多个用户 我按照书中的说明模拟多个用户对存储库提交更改 本书的输出显示了两个不同的人git log是 被执行 但是 我的输出仅显示一个用户 那就是我 如何