git
安装
- https://git-scm.com/downloads
安装步骤 下一步Next
安装成功后,任意文件夹内鼠标右键,如果看到如下效果,证明安装成功
配置:
git config --global user.name "xxx"
git config --global user.email "xxx"
查看用户配置的信息:
git config --list
初体验
初始化本地仓库:
git init
纳入git管理→→更新文件对比起始点(和上次做对比):
git add 文件列表(多文件)或是git add .
注释:文件列表(多文件):./a.html ./b.html格式; 后边的 . 代表所有文件
留下版本历史记录:
git commit -m '初始化版本'
查看历史版本:
git log
查看当前仓库所有文件的状态:
git status
红色说明当前B.html没有在暂存区
刷新最新历史起始点:
git add .
给最新版本记录:
git commit -m "最新版本和描述"
简化操作,假如没有添加新的文件再目录中,可直接将前两步合并:
git commit -m -a "最新版本和描述"
注意:如果忘记了当前项目的状态,可以用git status和git log查看状态,git status后没有显示红色文件,说明当前文件没有被修改,git log后显示的文件最新提交的对比点,和本地没有变化,说明和当前项目没有修改
修改提交的最后一次备注:
git commit --amend
提交代码时候,不加-m,会强制弹出窗口填写备注:
git commit
以上两种都会出现以下这种情况,进入编辑页面:
①执行命令后,会出现如下页面
②在窗口按下i,进入编辑状态,左下角出现插入两个字,
③输入备注信息
④在英文格式下按shift+ :号,左下角出现光标
⑤输入wq,回车后自动跳出页面
回滚代码
查看历史版本的简化方式,前面的信息就是每次的ID值:
git log --oneline
回滚到指定版本:
git reset --hard 版本号
撤销:
把某些文件移出暂存区,
git rm --cached 文件路径 文件路径
撤销暂存区的代码,撤销后无法找回,慎用!
git checkout .
配置用户权限
在任意地址git页面输入该命令,生成公钥和私钥
ssh-keygen -t rsa -C "你的邮箱地址"
公钥私钥绑定:
公钥地址从上图中可以找到
当前系统盘C:\Users\计算机账户名xxx.ssh\xxx.pub
找到地址后右击用记事本打开.pub文件,看到如下代码,复制
粘贴到指定的SSH keys公钥地址,粘贴后保存
绑定公钥后
推送【本地】到【远程】:
git status
查看本地仓库所有文件状态
git log
查看状态
git add .
更新起始点
git commit -m "备注名"
记录最新版本
git remote add origin 远程仓库地址
与远程仓库建立连接
git push
推送 (看到.done后就证明成功了)
git push -u origin master
第一次上传建议添加-u,这样本地仓库可以和远程仓库关联,关联之后后续推送代码方便
如果推送失败:
git remote remove origin
移除origin
git remote add origin 远程地址
重新创建远程仓库别名
git push -u -origin master
重新建立分支
origin 别名 在本地创建远程仓库的别名
拉取远程代码
第一次要克隆代码
git clone 远程地址
下拉分支
git pull 或是git pull origin master
分支:
git branch
查看分支
git branch 分支名
创建分支
git checkout 分支名
切换分支
git log
查看历史版本 没有分支名
删除分支
如果当前分支已经被合并了,可以删除,否则无法删除
git branch -d 分支名
不管该分支是否已经被合并,强制删除分支
git branch -D 分支名
为什么会有分支:因为公司开发好框架后用的主分支、 各自建立各自的分支进行开发,这样不会造成主分支的冲突
合并分支
合并前提:所有的分支需要commit一个各自的版本!
在主分支进行合并分支(在当前分支下合并需要合并过来的分支)
git merge 分支名字
查看历史版本 所有分支名字
git log
冲突合并
冲突出现原因:不同分支的 【相同文件 的 相同位置】 的代码都做了修改
冲突窗口展示:
产生冲突,没有合并成功:
解决冲突:
代码可以修改和选择,改好后进行更新起始点和备注版本信息
git add .
git commit -m "解决冲突后第一次提交"
如果开发项目中突然来了一个新的成员,项目组长和新的开发人员的git步骤:
操作流程:
①项目组长先提交当前本地的代码,推向远程仓库;
②新进入该项目的开发人员先进行克隆代码到本地,如果本地仓库有代码,那就直接拉取代码,不了解项目分支的话,可以查看当前的项目分支,为了避免冲突,切换到自己的分支,最后更新文件起始点并备注好当前起始点的版本信息
③项目组长可以查看下当前仓库的状态,备注好版本信息将代码存到本地仓储,然后查看所有的分支,站在主分支的情况下把代码拉下来→合并。如果有冲突,可以进行选择代码,或是改代码,改完后留下的代码不管是谁写的,都需要一次重新纳入git管理,记录一下历史版本信息
具体步骤:
项目组长 :
git push
新开发成员:
git clone
git pull
git branch 分支名
git checkout 分支名
git commit -a -m "版本备注信息"
项目组长:
git status
git commit -m "组长的版本备注信息"
git branch
git pull
git merge![在这里插入图片描述](https://img-blog.csdnimg.cn/20210528175057268.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N1bnNrdG9w,size_16,color_FFFFFF,t_70)
新成员分支名 *合并分支*
> 有冲突后:改代码,或是选择代码;
> 留下的是自己的代码或是别人的代码都算一次修改,都要重新提交一次历史版本
冲突后的第一次提交
git add .
git commit -m "合并主分支和新成员分支"
git push 最后可以进行提交
git pull后失败的几种情况,对号入座:
1.假如在拉分支前修改了代码:
git checkout .
git pull
意思是放弃之前的修改,然后再执行拉取
2.克隆后再去拉取代码必须进入根目录进行拉取
cd 目录
git pull
开发过程中切换分支
假如开发过程中需要先切换分支开发其他分支(例如修改其他分支bug),但是本地未完成开发,需要暂时保存:
1.使用git stash push –m “message” 保存当前的修改
2.切到目标分支修改bug,修改提交后切回原分支
3.使用git stash pop 还原
在错误的分支开发了新功能,新功能还没有在本地进行commit(提交)
使用git stash push –m”message”保存当前的修改
切换到需要开发的分支
使用git stash apply 应用修改
在错误的分支开发了新功能,新功能已经在本地提交了,但是还没有push到远程仓库
git log --oneline 先获取本次commit的hash
git cherry-pick 切到目标分支后将本次commit的修改merge到目标分支
git reset 切回错误分支,回退到之前版本
git checkout – . 清空修改
列举冲突:
1.别人提交过的代码,自己再提交,会出现如下: