# 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 |
| git reset HEAD xxx |
| git reset HEAD . |
# 跳过暂存区
# 删除文件
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 |
| |
| # 忽略 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" |
# 回退版本
- 在一行上展示所有的提交历史
- 使用 git reset --hard 命令 根据指定的提交 ID 回退到指定版本
git reset --hard <CommitID>
- 在旧版种使用
git reflog --pretty=oneline
命令 查看命令操作的历史
- 再次根据最新的提交 ID 跳转到最新的版本
# Github 开源协议
Git | https://www.runoob.com/w3cnote/open-source-license.html |
# 上传代码
Git | git remote add origin https://xx.com |
| git push -u origin master |
| 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
- 使用记事本打开 id_rsa.pub 文件,复制里面内容
- 在浏览器中登录 GitHub,点击头像 -> Settings -> SSH and GPG Keys -> News SSH key
- 将 id_rsa.pub 文件中的内容,粘贴到 Key 对应的文本框中
- 在 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. |
# 克隆仓库
# 查看 / 创建 分支
Git | git branch |
| git branch 分支名 |
# 切换分支
Git | git checkout 分支名 |
| git checkout -b 分支名 |
| git checkout -b 分支名 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 |