Git常用命令与基本操作(包括搭建git环境)
首先,在github注册邮箱,然后再Ubuntu下安装git和ssh服务(如果实在windows下需要下载git bash,其余操作与Ubuntu相同)。
Ubuntu搭建git环境
- ssh-keygen -t rsa -C "注册账号的邮箱名字" 生成SSH通信用的公钥
- 在github->settings->SSH->new SSH key把公钥内容拷贝进去。
- 测试连接:ssh -T git@github.com
- 配置git提交内容的用户名和邮箱信息:
- git config --global user.name "xianwu"
- git config --global user.email "763586526@qq.com"
git常用操作命令
1.代码拉取和提交
- git clone命令的作用是,可以把指定的远程仓库代码拉取到本地
- 示例:git clone git@github.com:xianwu543/HelleWorld.git
- git add 把git工作区的代码改动添加到暂存区
- 示例:git add main.cpp
- git commit -m "xxx" 把暂存区的代码提交到本地分支
- git push 把本地分支的代码推送(提交)到远程分支上去
- 在main分支git push origin main将本地main分支推送到远程origin的main分支上
- 在sortdev分支git push origin sortdev:main将本地sortdev分支推送到远程origin的main分支。
- git pull 把远程代码拉取到本地
- git status 查看当前操作的状态信息
- git log 查看代码修改日志
2.git各阶段版本回退命令
git checkout -- 在git add之前,把工作区的代码用版本库中的代码覆盖掉,注意命令中的--不能 去掉,否则成切换分支的命令了
git reset HEAD 把git add之后,暂存区的内容全部撤销
git reset --hard commitid 把提交到本地仓库中的代码改动进行回退
git reflog 查看HEAD指针的改动日志
git push -f 强制推送本地仓库代码到远程仓库
git diff HEAD -- 查看工作区file文件和仓库中该文件最新版本的代码有什么区别
git brach --查看本地分支
git brach -r --查看远程分支
git brach -a --本地和远程分支都显示
git brach -vv --查看本地分支和远程分支的追踪关系
创建分支: git branch
切换分支: git checkout
创建+切换分支: git checkout -b
合并某分支到当前分支: git merge
删除本地分支: git branch -d 如果分支上有更新没有merge,git会提示你merge,强 制删除用-D
本地分支推送到远程分支:git push <远程仓库名> <本地分支名>:<远程分支名>
创建本地分支并指定追踪哪个远程分支:git checkout -b <本地分支名> <远程仓库名>/<远程分支 名>
设置已经存在的本地分支追踪哪个远程分支:git branch -u <远程仓库名>/<远程分支名>
3.git创建远程分支
项目负责人把main分支设置只读,表示项目一期结束,创建dev分支用于第二期开发。那么在开发者本地使用命令:
git checkout -b dev origin/dev
表示创建dev分支并让他追踪远程的origin/dev分支,然后进入本地dev分支。
git工作流实践
1.需求开发阶段
feature新特性的开发阶段
1.git checkout -b feature/mydev origin/dev --创建 追踪 进入
2.git pull(比较好的习惯,保证本地分支和远程分支的最新代码保持同步)
3.在本地分支feature/mydev上开发代码(git add xxx git commit -m "xxx")
4.把本地分支直接推送到远程 执行之前一定要先git pull操作一下
- git push origin feature/mydev ---->> 在远程代码仓库中,新建了一个feature/dev的代码分支
- git push origin feature/mydev:feature/mydev_v1.0
- 代码评审工具 gitlab gerrit
- feature/mydev_v1.0 ====>> dev
- MR merge request 拉相应的人进行CR:code review
5.删除个人推送的远程分支
- git push origin :feature/mydev_v1.0 把空推送到远程,相当于删除远程分支了
2. release阶段bug修改
release解决bug
1.git checkout -b bugfix/mybug origin/release
2.修改bug
git add xxx
git commit -m "xxx"
3.git pull
4.git push origin bugfix/mybug --省略了远程分支,也就是传到了远程的bugfix/mybug上
5.代码评审工具 bugfix/mybug => release MR 拉人CR merge => release分支上了
6.git push origin:bugfix/mybug
hotfix热更新 解决之前的旧版本之上的bug。