随笔八 :Git保姆教学以及解决冲突
git 基本命令-初始化:git init 文件夹名
-初始化:git init #当前路径全被管理
-git status
-git add a.txt# 把a提交到暂存区
-git add .# 把当前文件全部提交到暂存区
-git commit -m'注释,我新增了a' # 把暂存区的所有的文件提交到版本库,
- 新用户第一次配置一下,在用户目录中找到.gitconfig把email和name存放进去,就可以了提交了
- 需要增加作者信息
git config --global user.email "you@example.com" 如果不加--global的话代表只是项目变化了
git config --global user.name "Your Name"如果不加--global的话代表只是项目变化了
-git checkout. # 回到提交版本的位置状态
-git log 查看版本管理日志
-git reset --hard 版本号
# 红色表示未被管理
# 绿色表示提交到暂存区了
# 忽略文件
-空文件不被管理,所以为什么要建立包,因为里面有_init_
-指定某些文件或者文件夹不被git管理
-在项目跟路径,跟.git文件夹创建一个路径,新建.gitignore,在里面配置
- 语法
# 是注释没有用
文件夹名字,表示文件夹忽略,不被管理
/dist 表示当前根路径下的dist文件夹,不被管理
*.py 表示后缀名为py的文件,都被忽略
*.log* 表示忽略上传的日志和轮值后端日志log1,log2
# 分支操作
-查看分支 git branch 如果绿色表示在当前分支上
-创建分支 git branch dev
-切换分支 git checkout dev/master
-创建并切换到分支 git checkout -b dev
-删除分支 git branch -d 分支名
-合并分支(把其他分支的内容合并到当前分支下面) git merge dev/master 需要将切换到master 然后把去和进来dev git 远程相关[## 1 git远程连接]
1 码云(国内,快)
2 新建仓库的时候,不要勾选Readme初始化这个而仓库
现在什么都没有,新建仓库]
mkdir lqz_test
cd lqz_test
git init
touch a.txt
git add a.txt
git commit -m "first commit"
git remote add origin https://gitee.com/liuqingzheng/lqz_test.git# 连接远程
git pushorigin master
已经有了仓库]
cd b
git remote add origin https://gitee.com/liuqingzheng/lqz_test.git
git push origin master
远程操作命令]
-git remote # 查看远程仓库(没有就看不到)
-git remote add origin https://gitee.com/liuqingzheng/lqz_test.git # 跟远程仓库建立连接
-git push origin master# 把本地的master分支提交到远程的origin,需要输入用户名和密码(之前存的需要删掉)
# 补充
git工作的指针是通过reset控制指针
git checkout . 是代表回到版本最新的位置
## 2 git项目创始者和开发者
1 项目创始者,如上
2 项目开发者,参与者(换了一台电脑),把代码拉下来继续开发
-git clone https://gitee.com/liuqingzheng/lqz_test.git
-能看到完整的版本和日志控制
-可以回复到任意版本
-git rest --hard 版本号
-git checkout . # 表示回到指针指向的版本,因为已经用git reset --hard把指针移动了,所以checkout .就是当前再的版本上的东西
3 本地新增c.txt文件
-提交到暂存区
-提交到版本库(没有提交到远程,远程看不到)
-提交到远程:git push origin master
4 让a文件夹中的代码成为最新的
-git pull origin master
重点:每次再提交代码之前,一定要先更新代码(拉),如果不拉提不上去]
-git pull origin master
#3 ssh连接和https连接
1、公司内部大部分用ssh连接
-领导给你一个git地址(项目地址)
-你 git clone 地址 到本地
-改代码,改完了 ---》提交(禁止)
-ssh配置,以后都不用输密码了
2、配置如何做
-对称加密(加密和解密用同一套密码)
-非对称加密(公钥和私钥),公钥加密,私钥解密
-ssh生成一对公钥和私钥(用命令)
-https://gitee.com/help/articles/4181
-ssh-keygen -t rsa -C "lqz@qq.com" 生成到用户家目录的.ssh文件夹下(一个公钥,一个私钥)
-把公钥复制出来,再码云上配置
3、配置完ssh替代码就不用 git remote add origin 用户名地址
# 补充MD5是属于签名,不可反解
# 4 协同开发
1 协同开发出现冲突,如何解决
2 git pull origin master拉下远程代码,同事和你修改了同一个位置,会冲突,如下
<<<<<<< HEAD
你的代码
=======
别人代码
>>>>>>> origin/master
3 处理方案
-删除你的代码
-删除同时代码
-合并你们的代码
## 5 合并分支出现冲突
1 分支:本地分支,远程分支
2 创建本地分支
-git checkout -b dev
3 把本地分支提交到远程
-git push origin dev
# 6 线上回滚
1、切换到master分支查看git log/reflog 选择到到那个版本
2、回滚到某个版本 git reset --hard 版本号
3、强制提交代码 git push origin master -f
# 7 分支合并出现冲突解决
1、远端创建一个dev分支
-在远端直接创建
-在本地创建提交远端
git checkout -b dev
git push origin dev
2、本地新建一个dev_bug分支
-dev_bug文件改了文件
-dev分支改了同样的文件
-合并就出冲突
-git merge dev_bug(在dev分支上操作)
-解决冲突(删你的,同时的,合并在一起)
-正常了,冲突解决了
-重新 git add . / git commit -m'1' 推远端
3、线上分支如果出现了,在本地解决了master在提交远端
页:
[1]