开发项目中:Git详细操作流程
1,Git介绍:
1、公司里多人协同开发一个项目,需要版本管理工具:svn,git
2、git可以实现版本控制
3、git,gitee,github,gitlab
gitee:中国的github(很多公司在用)
github:远程仓库,全球最大的开源代码库
gitlab:公司自己搭建的远程仓库,公司的代码放在上面
2、git工作流程
3、基本操作
# 1、初始化仓库,让git接管你的项目
git init# 2、查看仓库状态
git status
-红色:新建,修改,删除,在工作区没有放到暂存区
-绿色:放到暂存区,没有提交到版本库
-没有东西:说明所有变更都被版本管理起来了# 3、将当前路径下的所有变更提交到暂存区
git add .# 4、将暂存区的内容提交到版本库
git commit -m '注释'# 5、设置用户(目的在于可以在远端看到是谁提交了内容,更方便公司的管理)
# 5.1、设置全局用户(在家路径下创建用户,每个项目都用这一个用户)
>: git config --global user.name 'tianyanlong'
>: git config --global user.email 'tianyanlong2000@163.com'
# 5.2、设置局部用户(局部是指在某个项目下创建用户,可以在不同项目下创建不同用户)
>: git config user.name 'tianyanlong'
>: git config user.email 'tianyanlong2000@163.com'
# 6、撤销工作区操作
git checkout .# 7、撤销暂存区操作(了解)
git reset .# 8、撤销版本库提交
git reset --hard 版本号# 9、查看版本管理日志
git log # 显示作者,版本号,注释
git reflog # 显示精简信息,显示的更多(版本切换也会显示)
4,多分枝开发
# 1、查看分支
git branch # 绿色代表当前所在分支# 2、新建分支
git branch 分支名# 3、切换分支
git checkout 分支名# 4、删除分支
git branch -D 分支名 # 只有在另外一个分支下才能删除当前分支# 5、合并分支(子分支合并到主分支)
git branch master # 先切换到主分支
git merge dev # 再将子分支合并到主分支
5,remote源操作
-查看远程仓库:
git remote
-添加远程仓库(远程仓库的名字origin):
git remote add 远程仓库名字 仓库地址
git remote add origin https://gitee.com/liuqingzheng/test.git
-删除远程仓库
git remote remove origin
6,项目创始者和开发者的操作
6.1、创始者的操作
(1) 没有项目纯空的
mkdir test
cd test
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/liuqingzheng/test.git
git push -u origin master
(2)项目已经存在,在本地以及操作了(git_test)
cd git_test
git remote add origin git@gitee.com:tian-yanlong/logistics_api.git
git push -u origin "master" # 本地代码推送到远程
# 推送 远程仓库名 主分支
(3) 提交的时候需要输入gitee的用户名和密码
(4) 提交成功以后,在远程仓库能看到版本变更记录
6.2、开发者的操作
# 因为是开源的所有人都可以克隆
git clone https://gitee.com/liuqingzheng/test.git
# 修改改代码
git add .
git commit -m
git remote 配置远程仓库(我现在不用配,同一台机器已经配置过了)
git push origin master
# 在提交代码之前,要先更新
git pull origin master
7,线下分支合并
1 本地dev1分支新增代码,提交到版本库
2 本地dev1分支合并到master
-切到master
-git merge dev1 (没有冲突直接合并)
-git push origin master (本地master提交到远端master)
3 切到dev1分支,再提交到远端
4 到此,本地分支合并完成,远端的dev1跟master完全一样,本地的dev1跟master也完全一样
8,远程仓库回滚
1 远程仓库,回到最初路飞第一次提交的地方
2 再本地回复到第一次提交
git reset --hard 59dbf80c
git push origin master -f # 强制提交
3 切记 -f 清醒的时候使用
9,其他:
pull和fetch区别
git pull:拉代码+合并 git fetch:拉代码,需要手动合进去