🐿️添加环境变量
# 将下列路径加入系统环境变量,可在任意终端调用Git命令,如Idea或VScode
# 具体路径需要按Git实际安装目录确定
D:\Git\bin
D:\Git\mingw64\bin
D:\Git\mingw64\libexec\git-core
🐇Git开发前置操作
# 指定用户名和邮箱用于代码溯源
git config --global user.name caopengfei
git config --global user.email caopengfei1998@outlook.com
# 拉取远程仓库代码,具体的链接可以去GitLab仓库网页复制
git clone git@github.com:test/test.git
🐉代码拉取及提交,极为重要!!!一定不要出错,仔细校对!!!
# 第一次拉取代码
git pull
# 查看远程分支
git branch -r
🐋建立本地develop
分支和feature
分支
# 建立本地develop分支,用于跟踪远程仓库
git checkout -b devlop
# 设置跟踪规则
git branch --set-upstream-to=origin/<branch> new_branch
# 示例: git branch --set-upstream-to=origin/develop develop
# 上述命令,可以让本地仓库develop跟踪远程仓库develop
# 拉取代码,执行该命令,可以拉取远程仓库develop代码到本地仓库develop
# 该分支仅作为跟踪使用,一般不在此分支开发
git pull
# 建立本地feature分支,用于开发
git checkout -b feature-<task>-<data>
# 示例:git checkout -b feature-business-20220810
# 设置跟踪规则:git branch --set-upstream-to=origin/develop feature-user-20220906
# 拉取代码:git pull
# 然后,你就可以在此feature分支上开发了
# 当你不清楚自己在哪个分支上时,可以查看本地分支,*表示当前所在分支
# 一般情况下,第一次拉取代码,你会在主分支上,即master分支
# checkout之后,会到你刚创建的分支上
git branch
# 如果你想切换分支,可以执行下述命令
git checkout <branch>
# 示例:git checkout feature-business-20220809
🦕提交代码
# 查看更改的文件
git status
# 保存本地工作区更改,将代码回退为未修改状态
git stash
git stash list
# 拉取远程仓库,将代码更新为最新
git pull
# 将保存的本地更改释放出来,如果你做的是纯粹的增量开发,是不会出现conflict的
git stash pop
# 但是,如果有人和你对同一文件,同一行做了不同的更改,你就需要处理冲突了
# 你可以使用idea打开冲突文件,右键菜单-Git-处理重提
# 处理完成冲突,一定要再运行一次,确保没有错误在上传
# 一个有意思的情况是,你和另外一个人同时上传代码,你pull的是他没有push的代码;
# 但当你push时,他比你先几分钟push了,你一样会出现无法提交的问题;
# 这就需要merge或者rebase了,比较麻烦,因此建议提交代码之前和其他人说一下,避免出问题
# 将所有更改文件全部提交到暂存区
git add .
# 这是保存所有更改,也可以保存指定文件 git add <filename>
# 将暂存区文件提交到本地仓库
git commit -m <description>
# <description>是对本次提交的描述,中英文皆可
# 示例:git commit -m 我啥都没改
# 将本地仓库更改提交到指定远程仓库
git push origin <local>:<remote>
# 示例:git push origin feature-business-20220809:develop
# 这是将本地feature-business-20220809分支上的修改提交到远程develop分支
# 注意:这里一定不能输错!!!!!!
# 当然,你也可以先提交到本地develop,再提交到远程develop,这都是可以的
# 查看代码提交记录,如果没有设置用户名和邮箱,会显示为Unknown
git log
🐼其他常用命令
git branch -d new_branch #删除分支,D大写可以强制删除
git reset #回滚到某次提交,撤回之后所有内容全部放进工作区中
git reset --mixed commit_id #默认的,不指明也行,效果同上
git reset --soft commit_id #此次提交之后的修改会被退回到暂存区
git reset --hard commit_id #此次提交之后的修改不做任何保留,git status 查看工作区是没有记录的