【20230531】Git命令和Github相关使用

1 在Git中缓存GitHub凭据

  1. 根据系统下载对应的GitHub CLI 2.25.1

2. github主页,点击用户头像选择settings->Developer Settings->Personal access tokens申请密钥(主要分为Fine-grained tokens和Tokens classic)gh需要使用的是Tokens classic。 (可以通过网页进行授权认证,所以不需要提前申请密钥)

  1. 命令行输入下面内容,按要求进行下一步即可。
gh auth login

2 配置

Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。配置文件在用户目录下可以查看 eg. /home/lieryang/.gitconfig

# 显示当前的Git配置
git config --list
# 编辑Git配置文件
git config -e [--global]
# 设置提交代码时的用户信息
git config --global user.name "[name]"
git config --global user.email "[email address]"

# 代理设置
# socks
git config --global http.proxy 'socks5://127.0.0.1:1080' 
git config --global https.proxy 'socks5://127.0.0.1:1080'
# http
git config --global http.proxy http://127.0.0.1:7890 
git config --global https.proxy https://127.0.0.1:7890

# 只对github.com使用代理,其他仓库不走代理
git config --global http.https://github.com.proxy socks5://127.0.0.1:7890
git config --global https.https://github.com.proxy socks5://127.0.0.1:1080
# 取消github代理
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy

# 颜色设置
git config --global color.ui true           # git status等命令自动着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global --unset http.proxy     # remove  proxy configuration on git

3 增加/删除文件

# 添加指定文件到暂存区
git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
git add [dir]
# 添加当前目录的所有文件到暂存区
git add .
# 添加每个变化前,都会要求确认
# 对于同一个文件的多处变化,可以实现分次提交
git add -p
# 删除工作区文件,并且将这次删除放入暂存区
git rm [file1] [file2] ...
# 停止追踪指定文件,但该文件会保留在工作区
git rm --cached [file]
# 改名文件,并且将这个改名放入暂存区
git mv [file-original] [file-renamed]

4 代码上传到仓库

# 提交暂存区到仓库区
git commit -m [message]
# 提交暂存区的指定文件到仓库区
git commit [file1] [file2] ... -m [message]
# 提交工作区自上次commit之后的变化,直接到仓库区
git commit -a
# 提交时显示所有diff信息
git commit -v
# 将add和commit合为一步
git commit -am 'message'
# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
git commit --amend -m [message]
# 重做上一次commit,并包括指定文件的新变化
git commit --amend [file1] [file2] ...

5 分支相关命令

git branch # 查看本地分支,此命令会列出所有分支,当前分支前面会标一个*号
git branch -a  # 查看本地和远程分支
git branch 分支名 # 创建分支,仅仅保存本地,远程还需要push
git checkout 分支名 # 切换分支
git checkout -b 分支名 # 创建和切换分支
git checkout -d 分支名 # 删除本地分支
git push origin --delete 分支名 # 删除远程分支

6 tag 标签管理

git tag # 查看所有标签
git tag 标签名 # 创建tag
git push origin 标签名 # 因为创建的标签都只存储在本地,需要使用该命令推送标签到远程

7 新建一个代码库(本地+远程)

远程仓库创建主要通过gh命令进行,一共有两种方式。直接创建一个新的远程仓库(github仓库),然后把远程仓库同步到本地。另一个是先创建一个本地仓库,然后同步创建到远程仓库。
无论那一种方式都可以添加origin
请添加图片描述

7.1 方式一

【20230531】Git命令和Github相关使用_第1张图片

7.2 方式二

【20230531】Git命令和Github相关使用_第2张图片

8 提交文件到远程仓库

无论上面那种方式创建远程仓库,默认创建完成之后:

  1. 已经设定了origin,可以通过命令git remote -v查看
  2. 只要没有提交文件,分支就没有被创建(git commit -m “笔记” 这个命令才会创建master分支)

8.1 添加文件到仓库区

# 添加当前目录的所有文件到暂存区
git add .
git commit -m "注释内容"
# 只有提交文件到仓库区,本地会自动创建master分支
# 可以使用 git branch 查看本地分支
# git branch -a 查看本地和远程分支
# -M 用于移动/重命名分支。 
# 将当前分支重命名为 "main"。如果在当前仓库中已经存在名为 "main" 的分支,那么该命令将强制重命名当前分支并覆盖现有的 "main" 分支。
git branch -M main 
# git remote -v 查看远程仓库URL和命名
# 下面命令的作用是将远程仓库的 URL 添加到你的 Git 存储库中,并将其命名为 "origin"
# 方式一创建,系统会自动添加
git remote add origin https://github.com/LieryangStack/Gtk4-Study-Note.git
# -u 参数的作用是将本地分支与远程分支进行关联,并将其设置为 "upstream"
git push -u origin main

8.2 关于-u选项的说明

在 git push -u origin main 命令中,-u 参数的作用是将本地分支与远程分支进行关联,并将其设置为 “upstream”。这样做可以在以后的推送操作中提供便利。

具体作用如下:

  1. 推送到远程分支:git push 命令用于将本地的提交推送到远程仓库。在这个命令中,origin 是远程仓库的名称,main 是要推送的本地分支的名称。
  2. 关联本地分支和远程分支:-u(或 --set-upstream)参数用于将本地分支与远程分支进行关联。在这个示例中,main 分支将与 origin/main 远程分支进行关联。这样一来,Git 将记住 origin/main 是 main 分支的 “upstream”,也就是默认的追踪分支。
  3. 默认推送和拉取设置:通过设置 “upstream”,你可以在以后的推送操作中省略远程分支的名称。例如,之后运行 git push,Git 将自动推送到 origin/main,而无需再次指定远程分支的名称。此外,在拉取操作中,git pull 命令也会自动拉取与当前分支关联的远程分支的最新更改
  4. 通过使用 -u 参数,你可以方便地建立本地分支与远程分支之间的关联,并设置默认的推送和拉取行为。这样,你就可以更轻松地进行日常的推送和拉取操作,而不需要每次都指定远程分支的名称。

9 问题

9.1 没有相关的历史

git pull origin main

下面提示:

fatal: refusing to merge unrelated histories

解决方法

git pull origin main --allow-unrelated-histories

1.GIT如门
2.Git常用命令,总结的很全了!
3.GitHub CLI 命令行工具(gh)
4.git之分支与版本

你可能感兴趣的:(日常笔记,git,github)