|
1.git clone
从远程仓库第一次拉代码一般使用的就是git clone命令
# 比如拉取gitee仓库apollo代码到本地
git clone https://gitee.com/apolloconfig/apollo.git
注意:第一次克隆的时候一般是需要输入账密的,按要求输入即可,公司内网需要连vpn的先连接好vpn再拉。
2.git config
查看、修改git配置的命令,使用较少
# 查看当前项目git配置
git config --list
git config --global --list
# 重置用户名、邮箱
git config user.name 黄飞鸿
git config user.email huangfeihong@fh.com
注意:加--global标识全局修改覆盖,否则只针对本项目,一般name、email可以全局替换自己想要展示的名字即可。
3.git pull & git fetch
拉取远程代码更新至本地,一般可以结合使用;有合作开发人员提交推送之后想要拉下来使用或者查阅。
# 直接抓取
git fetch
# 拉取合并
git pull
4.git branch
查看项目分支
# 查看本地分支
MacBook-Pro-3:cgs-ms mingqi$ git branch
master
* release-dev
# 查看全部分支
MacBook-Pro-3:cgs-ms mingqi$ Git branch -a
feature-bug
master
* release-dev
remotes/origin/HEAD -> origin/master
remotes/origin/dev-release
5.git checkout
用于本地开发是分支切换变更的命令
# 普通切换本地分支,git checkout 「branch-name」
git checkout master
# 强制check一个没有的新分支出来
git checkout -B new-branch
# 新分支推送远程关联
git push --set-upstream origin new-branch
6.git status
查看当前项目自己的改动情况,直观了解动了哪些文件
# 开发过程和提交前可查阅
MacBook-Pro-3:cgs-ms mingqi$ git status
位于分支 release-dev
您的分支与上游分支 'origin/release-dev' 一致。
无文件要提交,干净的工作区
MacBook-Pro-3:cgs-ms mingqi$
7.git restore
存在本地文件改动但不想要,可以直接丢弃不保存
MacBook-Pro-3:cgs-ms mingqi$ git status
位于分支 release-dev
您的分支与上游分支 'origin/release-dev' 一致。
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git restore <文件>..." 丢弃工作区的改动)
修改: src/main/java/com/service/impl/ServiceImpl.java
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
MacBook-Pro-3:cgs-ms mingqi$ git restore src/main/java/com/service/impl/ServiceImpl.java
MacBook-Pro-3:cgs-ms mingqi$
8.git add
将为添加至git管理的文件添加到git管理,一般在项目目录下直接使用
# .标识当前目录
git add .
9.git commit
用于代码修改删除新增之后的本地提交,仅提交至本地仓库
# 普通提交
git commit -m 'feat: 1.新增xxx功能;
10.git log
查看git提交日志
MacBook-Pro-3:cgs-ms mingqi$ git log
commit 1056f89685bc90b88952724a1382d66145bcecb7 (HEAD -> release-dev, origin/release-dev)
Author: mingqi <gaomingqi@xxxx.com>
Date: Thu Oct 27 11:03:22 2022 +0800
fix: 1.format code<A3><BB>
commit 3b7acda5bfe1361cf24ecafa3c63fa4cf7acbfec
Author: mingqi <gaomingqi@xxxx.com>
Date: Wed Oct 26 22:03:00 2022 +0800
fix:<CE><DE>
11.git reset
一般是commit提交之后有问题,想放弃或者修改,又不想推送到远程
# 放弃本次未push的commit记录,代码不丢失,相当于没有commit
git reset --soft HEAD~1
# 代码回退(切换)至某次提交记录,如果存在未push的代码会丢失
git reset --hard 「commitId」
# commitId可以通过git log查看
git reset --hard 1056f89685bc90b88952724a1382d66145bcecb7
注意:第二个回退到制定commitId慎重操作,尽量不要跨commit记录回退,除非都是自己的提交且清晰记录所有改动!!!
12.git push
将commit提交至本地仓库的代码推送至origin远程分支仓库
# 普通推送
MacBook-Pro-3:cgs-ms mingqi$ git push
枚举对象: 27, 完成.
对象计数中: 100% (27/27), 完成.
使用 16 个线程进行压缩
压缩对象中: 100% (11/11), 完成.
写入对象中: 100% (14/14), 1005 字节 | 1005.00 KiB/s, 完成.
总共 14(差异 4),复用 0(差异 0),包复用 0
remote:
remote: To create a merge request for release-dev, visit:
remote: http:/merge_requests/new?merge_request%5Bsource_branch%5D=release-dev
remote:
To http:ms.git
1056f896..174efc0e release-dev -> release-dev
MacBook-Pro-3:cgs-ms mingqi$
# 新增分支可以直接推送到远程
git push --set-upstream origin new-branch
13.git merge?
项目上线之前一般需要将master分之代码合并至版本开发分支
# 可以切换到master分支拉取最新代码之后,再回版本开发分之合并本地master
git checkout master # 先切换到master
git fetch
git pull
git checkout release-dev # 回到版本开发分支
git merge master # 合并本地master
有冲突需要解决,然后走提交推送流程
git commit -m 'feat: 1.merge branch master into current;2.deal conflict;'
git push
# 直接合远程master至本地,在确认修改较少情况下,否则不建议
git merge origin master
14.git tag
项目上线之前最后一步是打tag,用于标识线上服务的瞬时状态
# 普通tag,git tag #{tag_name}
git tag tag_202210261445
# 添加备注,git tag -a #{tag_name} -m #{message_info}
git tag -a tag_202210261445 -m '新增xxx功能,修改xxx bug'
# 查看所有tag
git tag
15.提MR
项目上线之后要在git仓库提交merge request请求,请求合并版本开发分支至master分支。
(全文完)
|