你能在不手动分叉的情况下更新github项目的README.md吗?

zvms9eto  于 2023-09-29  发布在  Git
关注(0)|答案(2)|浏览(137)

这里有一个常见的用例:我正在尝试安装一个我从未使用过的github项目。它并不顺利,我浪费了15分钟(或15小时)才意识到,如果README.md有一行所需的信息,这个折磨会花我15秒。
像一个好心人一样,我想把这一步添加到README中,但是时间和精力比在README.md文件中输入这一行要多一个数量级:fork github repo,编辑我的README分支,写一条提交消息并提交,然后创建一个PR。
有没有更精简的方法来对README文件进行这些一次性更改?
注意事项:
1.如果没有更好的方法,我会这样做:我将安装github cli,并在一个shell脚本中自动执行此操作,该脚本将github克隆url作为输入。
1.我想详细说明一下我在标题中所说的“手动”的意思:我不介意使用一个自动化脚本(我在Ubuntu中使用WSL.exe)来简化它。

mjqavswn

mjqavswn1#

fork github repo,编辑我的README fork,写一个提交消息并提交,然后创建一个PR。
如果你没有GitHub仓库的许可,这是正确的方法。
我们知道你是个好撒玛利亚人,但是可能会有一些“坏撒玛利亚人”想要破坏一些仓库,你可以看到manyofthemin,例如torvalds/Linux,或者其他一些著名的仓库。
因此,检查repo所有者/许可用户是必要的,以避免任何想要破坏repo的恼人攻击。这就是为什么不允许任何人直接编辑repo。
然而,fork -> edit -> create PR有时看起来很复杂,所以GitHub提供了更简单的操作:
1.定位到存储库中要编辑的文件。
1.在这个文件的右上角,有一个带有钢笔图标的按钮,名为“Fork this repository and edit the file”。点击它。
1.如果您没有权限访问此存储库,系统将要求您分叉此存储库。
1.用你的思想编辑这个文件。
1.应用它,这将在你的分支中创建一个分支,也许是自动的,我在写答案的时候没有尝试过。为您的编辑创建PR。

kqlmhetl

kqlmhetl2#

如果你试图在一个你没有push访问权限的repo上创建一个PR,gh pr create command会自动(会提示你确认)为你创建一个fork,所以这可以通过bash脚本自动完成,比如:

#!/usr/bin/env bash

set -e

# Create a temporary directory and cd into it
TEMP_DIR="$(mktemp -d)"
cd "$TEMP_DIR" || exit

# First argument is the repo URL, second is the file to edit
# defaults to README.md
REPO="${1?Pass the repo URL as the first argument}"
FILE="${2:-README.md}"

# Clone the repo, cd into it
git clone "$REPO"
cd "$(basename "$REPO")" || exit

# Prompt for branch name, create it
read -rp "Branch name: " BRANCH
[[ -z "$BRANCH" ]] && exit 1 # exit if the branch name is empty
git checkout -b "$BRANCH"

# open the file in $EDITOR, default to nano if not set
"${EDITOR:-nano}" "$FILE"

# Commit the changes
git add "$FILE"
git commit

# open a PR, will fork if needed
exec gh pr create

当然,这需要您事先install and setup gh

相关问题