文章目录
安装Git:
- Linux、MacOS、Windows通用安装教程
- Git是分布式版本控制系统,每个机器都必须自报家门——你的名字和Email(以下配置3选1):
- 全局配置(当前用户的所有仓库):
git config --global user.name "Your Name(替换成自己的)" git config --global user.email "email@example.com(替换成自己的)"
- 系统级配置(系统上所有用户的所有仓库):
sudo git config --system user.name "System Name(替换成自己的)" sudo git config --system user.email "system@example.com(替换成自己的)"
- 本地仓库配置(仅当前仓库):
git config user.name "Local Name(替换成自己的)" git config user.email "local@example.com(替换成自己的)"
- 全局配置(当前用户的所有仓库):
仓库创建
本地
使用git init
将该目录变成git可管理的仓库。
git init
远程仓库clone
- 前置条件:
- GitHub账号
- 设置本地Git仓库和GitHub仓库之间SSH加密传输
- 创建SSH Key:
ssh-keygen -t rsa -C "youremail"
- 登陆
GitHub --> Settings --> SSH Keys
页面,点击New SSH Keys
,然后在Key
文本框里粘贴/Users/XXX/.ssh/id_rsa.pub
文件的内容,从而在GitHub设置中添加自己机器的身份。Git支持SSH协议,所以GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
- 创建SSH Key:
点Fork
就在自己的账号下克隆了一个开源仓库,然后从自己的账号下clone:
git clone git@github.com:michaelliao/bootstrap.git
一定要从自己的账号下clone仓库,这样你才能推送修改。
对文件进行操作后,可以把本地库的所有内容推送到远程库上:
git push origin main/master
git常用命令
把一个文件放到Git仓库只需两步。
git add
把文件从workspace添加到暂存区(index/stage):
git add file
git commit
把文件从暂存区提交到仓库:
git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 XXX
git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的。
为什么Git添加文件需要add
,commit
一共两步呢?因为commit
可以一次提交很多文件,所以你可以多次add
不同的文件。
丢弃git add 到stage的内容:git reset
:这将暂存区重置为与上一次提交相同的状态,但保留工作目录中的更改。
git status
时刻掌握仓库当前的状态
git log
命令显示从最近到最远的提交日志版本,加上--pretty=oneline
可以简化输出信息。
版本回退
HEAD
表示当前版本,前第K
个版本,就是HEAD~K
,
- 首先使用
git log
确定回退到哪个版本,假设回到第前K
个版本,其对应的commit id
的前几位是1094adb...
。 - 使用命令指定回到过去/未来的某个版本:
$ git reset --hard HEAD~K(or 1094ad)
git restore
撤销修改对应几种情况:
- 只在工作区作了修改尚未
git add
时使用:git restore <file>
- 只有
git add
尚未git commit
时使用:
回到情况1,然后使用git restore --staged <file>
git restore <file>
处理。 - 执行了
git commit
尚未git push
:
使用版本回退$ git reset --hard HEAD~K(or 1094ad)
解除本地和远程的绑定关系
- 建议使用
git remote -v
查看一下远程库的信息
bash git remote -v origin git@github.com:username/XXX.git (fetch) origin git@github.com:username/XXX.git (push)
- 解除本地和远程的绑定关系,并不是物理上删除了远程库。
bash git remote rm origin
(pull requests使用)2024-7-8
场景:在本地处理 feature 分支和 Fix-Bug 修复分支,并将修复后的代码合并回主分支。 流程:
- 创建 feature 分支:
开始一个新特性时,先从主分支创建一个 feature 分支,并将手头的代码提交到 feature 分支。git checkout -b feature git add . git commit -m 'feature branch commit'
- 创建 Bug 修复分支:
切换回主分支,创建一个用于修复 bug 的分支。git checkout master git pull origin master # 确保主分支是最新的 git checkout -b Fix-Bug
- Bug 修复完成后,提交代码:
在 bug 修复分支上完成修复,并提交更改。git add . git commit -m 'fixed bug'
- 将修复了 Bug 的代码推送到远程仓库:
git push origin Fix-Bug
- 提交 Pull Request:
在代码托管平台(如 GitHub、GitLab 或 Gitee)上创建一个 Pull Request,将Fix-Bug
分支合并到master
分支。
进行代码审查,修正任何发现的问题。- 确保你已经在本地克隆了 GitHub 仓库,并进行了必要的更改。
- 在你本地的仓库中创建一个新的分支,并在该分支上进行更改。
- 在仓库页面中,你会看到一个提示,询问是否要对你刚推送的分支创建 Pull Request。点击 “Compare & pull request” 按钮。如果没有看到提示,你可以点击 “Pull requests” 标签,然后点击 “New pull request” 按钮。在 “Compare changes” 页面,选择你推送的分支(
Fix-Bug
)和要合并的目标分支(通常是main
或master
)。 - 填写 Pull Request 的标题和描述:在 “Open a pull request” 页面,填写 Pull Request 的标题和描述。描述应该清晰明了地说明你所做的更改和其目的。 你还可以分配审查者、添加标签、里程碑等。
- 创建 Pull Request:填写完所有信息后,点击 “Create pull request” 按钮。
- 代码审查和合并
- 代码审查:维护者审查你的PR后进行反馈,你进行必要的修改,然后推送到同一个分支,GitHub 会自动更新 Pull Request。
- 合并 Pull Request:一旦所有审查者都批准了更改,或者你作为维护者决定合并 Pull Request,你可以点击 “Merge pull request” 按钮。最后点击 “Confirm merge” 进行确认。
- 删除本地和远程的 Fix-Bug 分支
# 切换回 master 分支并拉取最新更改 git checkout master git pull origin master # 删除本地的 Fix-Bug 分支 git branch -d Fix-Bug # 删除远程的 Fix-Bug 分支 git push origin --delete Fix-Bug
参考:
其他方面用到再更…