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

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(使用前将#替换为@)

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

随机推荐

  • 如何停止在 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是 被执行 但是 我的输出仅显示一个用户 那就是我 如何