# Git 配置

Git
git config // 查看本机是否配置了个人信息
git config --global user.name "……"  // 定义全局的用户名
git config --global user.email "……" // 定义全局的邮件地址
git config --list // 查看配置信息

# 获取用户

Git
git config user.name  // 查看用户名
git config user.email // 查看邮箱

# 帮助命令

Git
git help xx                // 获取帮助命令
git config --global        // 获取命令信息
git config --list --global // 获取全局列表
git config --list          // 获取列表

# 状态查看

Git
git status --short  // 精简展示未跟踪
git status -s       // 上面代码的缩写

# 移除暂存区

Git
git checkout xx     // 撤销 xx 文件 
git reset HEAD xxx  // 移出暂存区
git reset HEAD .    // 所有文件移出暂存区

# 跳过暂存区

Git
git commit -a -m '' // 对已经提交过到暂存区的,可以跳过暂存区

# 删除文件

Git
git rm -f xx       // 删除工作区和暂存区文件
git rm --cached xx // 删除暂存区文件

# .gitignore

Git
# 忽略所有 .abc 文件
*.abc
# 跟踪所有 ssr.abc 即便在前面忽略了 .abc 文件
!ssr.abc
# 只忽略当前目录下的ssr文件,而不忽略abcd/ssr文件
/ssr
# 忽略任何目录下名为dist的文件夹
dist/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

# 查看日志

Git
# 按事件先行顺序列出所有的提交历史m最近的提交排在最上面
git log
# 只暂时最新的两条提交历史,数字可以按需进行填写
git log -2
# 在以后上展示最近两条提交历史的信息
git log -2 --pretty=oneline
# 在一行上展示最近两条提交历史的信息,并自定义输出的格式
# %h  提交的简写哈希值
# %an 作者名字
# %ar 作者修订日期,按多久以前的方式显示
# %s  提交说明
git log -2 --pretty=format:"%h | %an | %ar | %s"

# 回退版本

  1. 在一行上展示所有的提交历史
  • git log --pretty=oneline
  1. 使用 git reset --hard 命令 根据指定的提交 ID 回退到指定版本
  • git reset --hard <CommitID>
  1. 在旧版种使用 git reflog --pretty=oneline 命令 查看命令操作的历史
  2. 再次根据最新的提交 ID 跳转到最新的版本

# Github 开源协议

Git
https://www.runoob.com/w3cnote/open-source-license.html

# 上传代码

  • https
Git
git remote add origin https://xx.com  // 远程连接
git push -u origin master             // 上传代码
git push // 当已经执行过上面代码时,再提交只需要 git push 就可以了

# 配置 SSH key

# SSH 配置

  • 打开 git Bash Here ,输入下面命令:

  • ssh-keygen -t rsa -b 4096 -C 'your_email@example.com'

  • 连续敲击三次回车,在 C:\Users\ 用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件

# 配置 SSH key

  1. 使用记事本打开 id_rsa.pub 文件,复制里面内容
  2. 在浏览器中登录 GitHub,点击头像 -> Settings -> SSH and GPG Keys -> News SSH key
  3. 将 id_rsa.pub 文件中的内容,粘贴到 Key 对应的文本框中
  4. 在 Title 文本框中国任意填写一个名称,来标识这个 Key 从何而来

# 检测 Github 的 SSH key 是否配置成功

Git
# 打开 Git Bash,执行下面命令
① ssh -T git@github.com // Hi nekoaimer! You've successfully authenticated, but GitHub does not provide shell access.
# 命令成功后可能会看到如下提示消息
Hi nekoaimer! You've successfully authenticated, but GitHub does not provide shell access.

# 克隆仓库

Git
`git clone 远程仓库地址`

# 查看 / 创建 分支

Git
git branch       // 查看分支
git branch 分支名 // 创建分支

# 切换分支

Git
git checkout 分支名     // 切换分支
git checkout -b 分支名  // 创建并切换分支
git checkout -b 分支名 origin // 基于远程分支”origin“,创建一个分支。

# 合并分支

Git
# 先切换到要合并的分支
git checkout master
# 在要合并的分支上运行下面命令,将被合并的分布合并到当前分支
git merge 被合并的分支名

# 删除分支

Git
git branch -d 分支名       // 删除分支
git branch -d 分支名 分支名 // 删除多个分支
git branch -D             // 强制删除分支 不管有没有合并

# 分支冲突

  • 假设当前两个分支 master main 当前在 master 分支 index.js 文件为空

  • 切换到 main 分支 对 index.js 进行了增加一行代码

  • 进行 add .commit 再切换 master 分支

  • master 中的 index.js 文件进行增加一行代码

  • 这时候就会造成文件冲突,这时候我们需要手动打开冲突文件,解决冲突

Git
<<<<<<< HEAD (Current Change)
xxx
xxx
=======
xxx
xxx
>>>>>>> main (Incoming Change)

# 远程分支操作

  • 第一次推送需要进行下面命令:
Git
# -u 表示把本地分支和远程分支进行关联,只在第一次推送时需要带 -u 参数
git push -u 远程仓库别名 本地分支名称:远程分支名称
# Example
git push -u origin login:log
# 如果希望远程分支名称和本地分支名称一致,可以简化
git push -u origin login
  • 注意:第一次推送分支需要带 -u 参数,之后就可以直接使用 git push 推送代码到远程分支

# 查看远程仓库分支

Git
git remote show 远程仓库名称   默认是origin

# 跟踪分支

  • 从远程仓库中,将远程分支下载到本地仓库中
Git
# 从远程仓库中,把对应的远程分支下载到本地仓库 保存本地分支和远程分支名称相同
git checkout 远程分支的名称
# Example 不需要重命名 直接下载远程分支login
git checkout login 
# 从远程仓库中 把对应的远程分支下载到本地仓库 并把下载的本地分支进行重新命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称
# Example 对origin远程仓库中log分支下载并重命名为login 
git checkout -b login origin/log

# 拉取远程分支最新代码

Git
# 从远程仓库,拉取当前所在分支最新代码 保持当前分支代码与远程分支代码一致
git pull

# 删除远程分支

Git
# 删除远程仓库中 指定名称的远程分支
git push 远程仓库名称 --delete 远程分支名称
# Example
git push origin --delete log
Update on Views times

Give me a cup of [coffee]~( ̄▽ ̄)~*

Nico Niconi WeChat Pay

WeChat Pay

Nico Niconi Alipay

Alipay