一些 Git/Github 使用方法

写在前面

关于 Git/Github,你可能需要的知识

在 Git 仓库中切换用户

  1. 查看当前 Git 配置

在命令行中输入以下命令,查看当前 Git 的全局配置:

git config --global user.name
git config --global user.email

如果输出的用户名或邮箱不是想要使用的账户信息,那么需要更改配置

  1. 更改 Git 配置

在命令行中输入以下命令,更改 Git 的全局配置:

git config --global user.name "New username"
git config --global user.email "New email address"

将 "New username" 和 "New email address" 替换为想要使用的用户名和邮箱地址(隐私起见:请勿设置个人邮箱)

  1. 检查更改是否生效

在命令行中输入以下命令,检查更改是否生效:

git config --global user.name
git config --global user.email

如果输出的用户名和邮箱地址与刚才设置的信息一致,那么更改已经生效

注意:如果您需要在某个特定的 Git 仓库中使用不同的账户信息,可以在该仓库的根目录下新建一个 ".gitconfig" 文件,并在其中设置新的用户名和邮箱地址。在该仓库中使用以下命令设置新的用户名和邮箱地址:

git config user.name "New username"
git config user.email "New email address"

这样,就可以在特定的 Git 仓库中使用不同的账户信息了

Git 使用代理

  1. 设置代理

在命令行中输入以下命令,设置代理:

git config --global http.proxy http://proxy.example.com:port
git config --global https.proxy https://proxy.example.com:port

将 "http://proxy.example.com:port" 和 "https://proxy.example.com:port" 替换为要使用的代理服务器地址和端口号

  1. 取消代理

如果需要取消代理,可以在命令行中输入以下命令:

git config --global --unset http.proxy
git config --global --unset https.proxy

这样,就可以在 Git 中使用代理来访问仓库了

注意:如果使用的是 SOCKS 代理,可以将http.proxy 和https.proxy 改为socks.proxy 和socks5://proxy.example.com:port

推送仓库

  1. 确认远程仓库

在命令行中输入以下命令,确认远程仓库的 URL:

git remote -v

如果输出的结果中没有远程仓库的 URL,说明还没有将本地仓库与远程仓库关联。可以使用以下命令添加远程仓库:

git remote add origin <remote repository URL>

将 "<remote repository URL>" 替换为您的远程仓库 URL。

  1. 将本地仓库推送到远程仓库

在命令行中输入以下命令,将本地仓库推送到远程仓库:

git push -u origin master

其中,"origin" 是远程仓库的别名,"master" 是要推送的分支名称(以前用的),现在一般都用 “main”,具体看仓库分支。如果要推送其他分支,可以将 "master" 替换为其他分支名称

如果是第一次推送到远程仓库,需要使用 "-u" 参数,将本地仓库与远程仓库关联。

  1. 输入用户名和密码

在推送仓库时,可能需要输入用户名和密码。输入完成后,Git 就会将本地仓库推送到远程仓库中

注意:如果您在推送仓库时遇到问题,可以尝试使用以下命令查看 Git 的错误信息:

git config --global --add core.quotepath false

这样,就可以将错误信息显示为中文,方便您进行排查和修复


以上每次提交都会有一个提交记录,也就是commit,如果不想保留之前的提交记录,可以按照以下步骤进行操作:

  1. 使用以下命令将本地仓库的 master 分支重置为初始状态:
git checkout --orphan new-master
git add -A
git commit -m "Initial commit"

这样,就可以将本地仓库的 master 分支重置为初始状态,并创建一个新的分支 new-master。

  1. 使用以下命令删除远程仓库的 master 分支:
git push origin :master

这样,就可以删除远程仓库的 master 分支。

  1. 使用以下命令将本地仓库的 new-master 分支重命名为 master 分支:
git branch -m master

这样,就可以将本地仓库的 new-master 分支重命名为 master 分支。

  1. 使用以下命令将本地仓库的 master 分支推送到远程仓库:
git push -f origin master

注意:使用 "-f" 参数可以强制推送本地仓库的 master 分支到远程仓库,覆盖之前的提交记录。这样做可能会导致之前提交的代码丢失,请谨慎操作。

做完,就可以将本地 Git 仓库的代码推送到远程仓库,并且不保留之前的提交记录


如果想将 fork 的仓库推送到自己的 GitHub 仓库中,可以按照以下步骤进行操作:

  1. 克隆 fork 的仓库到本地

首先,需要将 fork 的仓库克隆到本地。在命令行中输入以下命令:

git clone <forked repository URL>

将 "<forked repository URL>" 替换为 fork 的仓库的 URL

  1. 添加远程仓库

在命令行中进入克隆的本地仓库目录,使用以下命令添加你的 GitHub 仓库作为远程仓库:

git remote add upstream <your repository URL>

将 "<your repository URL>" 替换为你的 GitHub 仓库的 URL

  1. 拉取 upstream 分支的最新代码

在命令行中输入以下命令,将 upstream 分支的最新代码拉取到本地:

git fetch upstream
  1. 合并 upstream 分支的最新代码到本地仓库

在命令行中输入以下命令,将 upstream 分支的最新代码合并到本地仓库的 master 分支中:

git merge upstream/master
  1. 推送代码到自己的 GitHub 仓库

在命令行中输入以下命令,将本地仓库的代码推送到自己的 GitHub 仓库中:

git push origin master

这样,就可以将 fork 的仓库推送到自己的 GitHub 仓库中了。

注意:如果在推送代码时遇到权限问题,可能需要在 GitHub 上设置 SSH 密钥。可以参考 GitHub 的官方文档进行操作

关于 upstream 分支

upstream 分支是指原始仓库(upstream repository)的主分支(通常是 master 分支)。当你 fork 一个仓库时,会在你的 GitHub 账户下创建一个新的仓库,该仓库被称为 fork 的仓库(forked repository)。你可以将 fork 的仓库克隆到本地进行修改,并将修改后的代码推送到自己的 GitHub 仓库中。

upstream 分支的作用是将原始仓库的最新代码拉取到本地,以便在 fork 的仓库中进行更新。当原始仓库的代码发生变化时,可以使用 git fetch upstream 命令将最新的代码拉取到本地,然后使用 git merge upstream/master 命令将最新的代码合并到本地仓库的 master 分支中。这样就可以将原始仓库的最新代码同步到自己的 GitHub 仓库中。

注意:在使用 upstream 分支时,需要确保你已经将自己的 GitHub 仓库与 fork 的仓库关联,并且已经将自己的 GitHub 仓库作为远程仓库添加到本地仓库中。可以使用 git remote add origin 命令添加自己的 GitHub 仓库作为远程仓库


如果您想将别人的仓库推送到自己的仓库,并且不想保留别人的提交记录,可以按照以下步骤进行操作:

  1. 首先,将别人的仓库克隆到本地:
git clone <别人的仓库地址>
  1. 进入克隆的本地仓库目录,创建一个新的 Git 仓库:
cd <克隆的本地仓库目录>
git init
  1. 将本地仓库与自己的 GitHub 仓库关联:在这之前可以先看一下是否已经有远程仓库了:git remote -v ,如果是别人的,修改方法是
    git remote set-url origin <你的远程仓库链接>

    如果未关联过,则直接

    git remote add origin <自己的仓库地址>
  2. 将别人的仓库的所有提交记录合并为一个新的提交:
git merge --squash <别人的分支>

注意:这里的 --squash 参数表示将多个提交合并为一个新的提交。

  1. 提交新的合并提交:
git commit -m "New commit message"
  1. 推送新的提交到自己的 GitHub 仓库:
git push -u origin master

注意:这里的 master 表示要将新的提交推送到自己的 GitHub 仓库的 master 分支

声 明 1 bujj博客:www.bujj.org
2 原创文章,转载请注明转自bujj博客:www.bujj.org
3 当前页网址:https://www.bujj.org/index.php/2023/03/05/496/
THE END
分享
二维码
< <上一篇
下一篇>>