git
git 是以行为单位维护代码的
集中式版本控制:svn,所有的程序员都放到一台服务器上集中管理项目
- 缺点:服务器宕机后无法继续协同工作
分布式版本控制:git,每台电脑都相当于一个小服务器,还有一个集中式管理的远程服务器
git常用命令
-
git config --global user.name
:设置用户签名 -
git config --global user.email
:设置用户签名- 签名作用是区分不同操作者身份,确认本次提交是谁做的,与gitHab的账号密码没有任何关系
-
git init
:初始化本地库,把不是git仓库的文件夹初始化为git仓库 -
git status
:查看当前文件库内文件的修改状态 -
工作区提交到暂存区:
git add .
:将工作区所有的未捕获的文件(修改)添加到暂存区git rm --cached 文件名
:将暂存区的文件删除掉
-
暂存区提交到本地库:
git commit -m "备注"
:暂存区提交到本地库
-
查看版本:
git reflog
:查看版本号的前7位git log
:查看本次提交版本的详细信息
-
版本穿梭:
git reset --hard 版本号前七位
:穿梭到某版本号
-
git 分支:
git branch -v
:查看分支列表git branch 分支名
:创建分支git checkout 分支名
:切换分支
-
合并分支:
git merge hot-fix
:如果当前是在master分支,就是把hot-fix分支合并到master分支上
-
远程仓库操作命令:
git remote add 别名 远程库地址
:在git上给远程创建别名git push 远程库别名 master(分支名)
:以本地库的分支为最小单位,将本地库内容推送到远程库
-
本地库与远程库代码不一致时,拉取命令:
git pull 远程库别名 分支名
:拉去远程库的新代码到本地库同步
-
克隆
-
git clone 远程库地址
:克隆远程仓库的代码到本地仓库,一共干了三件事:- 1.拉取代码
- 2.初始化本地库
- 3.创建当前远程库别名:默认创建的别名是
origin
-
``
-
git分支
git解决代码冲突
产生冲突的情况:当合并分支时,git发现两个分支的同文件同行代码或多同行代码都发生了变化,git无法做决定时,就让操作人员手动决定留哪些
git团队协助
团队内协作
- 工程师A用
git push
将本地库代码放到远程库 - 工程师B用
git clone 远程库地址
将远程库代码放到本地库 - 工程师B修改完本地库代码后,上传到远程库
git push
- 工程师A用
git pull
可以拉下最新的代码
跨团队合作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9ZIVCwY-1652057651418)(…/…/AppData/Roaming/Typora/typora-user-images/image-20220509080733600.png)]
- B团队将A团队的远程仓库通过==fork(叉子)==复制到自己的远程库上面
- B团队从自己的远程库上克隆代码到自己的本地库
- B团队修改代码之后,将本地库的代码推到远程库
- B团队的远程库向A团队远程库发送PULL Request请求
- A团队审核请求代码,最后决定合并到远程库