git 是一款版本管理软件,适用目前绝大多数操作系统;Github 是一个代码托管平台,与 Git 没有任何关系,只不过 Git 可以基于 Github 进行分布式云存储与交互,因此往往需要结合二者从而达到相对良好的 Teamwork 状态。本文是我基于 Git 的版本管理学习记录,涉及到的指令只是冰山一角,但是使用频率较高。详细的指令请跳转至官方教学 https://git-scm.com/book/zh/v2
全文分为两个部分,分别为 Git 版本管理的 Architecture 与 Git 的相关命令。其中 Architecture 使用 Xmind 绘制,Git 相关命令采用 Git Bash 模拟 Unix 命令行终端。本地 OS 为 Microsoft Windows 11
| 工作区 | 暂存区 | 仓库区 |
|---|
# 从服务器克隆仓库
git clone https://github.com/<UserName>/<ProjectName>.git
# 查看当前文件状态
git status
# 从当前版本开始查询 commit 日志
git log
# 查看所有 commit 日志
git reflog
# 初始化仓库
git init
# 查看 git 配置信息
git config --list
# 查看 git 用户名、密码、邮箱的配置
git config user.name
git config user.password
git config user.email
# 查看代理
git config --global --get http.proxy
git config --global --get https.proxy
# 配置(修改) Email & Pwd & Username (局部)
git config user.name "xxx"
git config user.password "xxx"
git config user.email "xxx@xxx.com"
# 配置(修改) Email & Pwd & Username (全局)
git config --global user.name xxx
git config --global user.password xxx
git config --global user.email "xxx@xxx.com"
# 配置代理
git config --global http.proxy 127.0.0.1:<VpnPort>
git config --global https.proxy 127.0.0.1:<VpnPort>
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
# 连接远程服务器
git remote add <RemoteName> https://github.com/用户名/仓库名.git
# 查看所有连接的远程
git remote -v
# 修改远程别名
git remote rename <OldRemoteName> <NewRemoteName>
# 工作区到暂存区(单文件)
git add <FileName>
# 工作区到暂存区(全部变动文件)
git add .
# 暂存区到仓库区
git commit -m ''
# 仓库区到云服务器(常规方法)
git push <RemoteName> <BranchName>
# 仓库区到云服务器(初始配置仓库推送默认地址)
git push -u <RemoteName> <BranchName>
# 仓库区到云服务器(已配置默认推送地址后)
git push
# 强制覆盖推送
git push --force <RemoteName> <BranchName>
# 取消修改
git checkout -- <FileName>
# 取消 add(一个文件)
git reset -- <FileName>
# 取消 add(全部文件)
git reset
# 取消 commit 直接到工作区
git reset --hard '<版本序列>'
# 取消上一次 comment 并进入 vim 编辑模式
git commit --amend
# 删除本地文件后重新推送(单文件)
git rm <FileName>
git push
# 删除本地文件后重新推送(文件夹)
git rm -r <FolderName>
git push
# 取消 push
# 本地回溯 comment 到某一个版本,重新 push
# 取消某些文件的版本管理
# 参考 https://www.cnblogs.com/zhangcaihua/p/15261392.html
# 创建分支
git branch <BranchName>
# 远程同步
git push <RemoteName> <BranchName>
# 切换到另一个分支再进行删除操作
git switch <AnotherBranchName>
git branch -d <BranchName>
# 远程同步
git push <RemoteName> --delete <BranchName>
如果修改的分支为远程保护分支,则在远程更新之前,需要在远程相应的服务商家那里对保护分支进行重新设定
# 修改名称
git branch -m <OldName> <NewName>
# 远程同步
git push <RemoteName> <NewName>
git push <RemoteName> --delete <OldName>
# 首先将当前分支切换到需要被合并的分支 ,接着合并需要被合并的分支
git merge <TodoBranch>