git——版本控制及冲突解决

协同开发,版本管理
svn(集中式管理),git(分布式管理)
远程仓库:github,码云,公司内部(gitlab)

配置信息 全局
git config --global user.email "lqz@qq.com"
git config --global user.name "lqz"

git config  user.email "egon@qq.com"
git config  user.name "egon"

-工作区,暂存区,版本库

	-git init   # 初始化,生成一个.git 的文件夹
    -git stauts # 查看状态(红色和绿色),必须全绿再提交到版本库
	-git add .  # 提交到暂存区  git add a.txt
    -git commit -m '注释'  # 从暂存区提交到版本库
    -git checkout . # 把工作区的内容恢复到版本库中最新的版本
    -git reset .   # 把暂存区的东西拉回到工作区(原来是绿的变红了)
    # 红色表示未被管理
	# 绿色表示提交到暂存区
    -git reset --hard 版本号  # 回退到某个版本
    -git log   # 查看版本管理的日志
    -git reflog # 查看日志,条数更多,内容更少
    
分支
    -git branch  # 查看所有分支,如果分支是绿色,表示是当前分支
    -git branch 分支名  # 创建分支
    -git chekout dev  # 切换到dev分支
    -git chekout -b dev2 # 创建并切换到dev2分支
    -git branch -d dev2 # 删除dev2分支,不能再这个分支上
    -git merge dev   # 你必须再其他分支(master),合并dev
    
忽略文件
	-空文件夹不被管理
	-指定某些文件或者文件夹不被git管理
    -在项目根路径,跟.git文件夹一个路径,新建.gitignore.,在里面配置
    - 语法:
    	# 号是注释,没有用
        文件夹名字,表示文件夹忽略,不被管理
        /dist 表示根路径下的dist文件夹,不被管理
        *.py   表示后缀名为py的文件,都被忽略
        *.log*

git:

https://mp.weixin.qq.com/s?src=11&timestamp=1595294809&ver=2473&signature=teq192g3C6PFJIKUALY9HIBjO20aZeAL*Ms35fwJSYWbLjNfyouwjsxmzCnxdLpb5evdqZG-PByoFSHAaGRGqaNNNFsz2z2Pa-k02-4fXLVJxqovhETTxT56lzDDSa61&new=1

1 git初始化,提交内容,远程连接

    git init   初始化一个本地文件夹为git管理的库
    
    git add a.txt  提交到暂存区
    git commit -m "first commit"   提交到版本库
    
    git remote   查看有哪些连接
    git remote add origin https://gitee.com/liuqingzheng/lqz_test.git  建立远程连接
    git push origin master   将修改 提交到 origin连接的 master分支上

ssh连接和https连接

# 1 公司内部大部分用ssh连接
    ssh配置,不用输密码
# 2 配置如何做
公钥和私钥 用户家目录的.ssh文件夹下(一个公钥,一个私钥)
        生成秘钥,如果没有-ssh-keygen -t rsa -C "lqz@qq.com"  
        把公钥复制出来,在码云上配置
        
对称加密和非对称加密
	-对称加密(加密和解密用同一套秘密,共享秘钥)
    -非对称加密(公钥和私钥),公钥加密,私钥解密

2 git开发者

1 将库的代码clone下来,得到管理的库,完整的 版本 和 日志控制
	git clone https://gitee.com/liuqingzheng/lqz_test.git

    回复到任意版本
    git rest --hard 版本号 
    git checkout . 
    回到指针指向的版本,因为已经用git rest --hard把指针移动了,所以checkout .就是当前版本
    
2 pull代码,更新文件夹为最新的
	git pull origin master
    
3 push代码,每次push代码,一定要先pull,再push,可能有冲突

# 跟远程操作有三个命令
git pull
git push
-git feacth(一般不用,他跟pull是一个东西,当作不知道)

pycharm操作git

在pycharm中操作git时,首先要在pycharm中配置,setting---》git--->git.exe的地址
git clone

出现冲突解决

pull代码出现冲突 提交代码

git pull origin master  拉下远程代码,两个人修改了同一个位置,会冲突

<<<<<<< HEAD
你的代码
=======
别人代码
>>>>>>> origin/master

处理方案
    -删除自己的代码
    -删除别人的代码
    -合并代码
合并分支冲突  手动线下合并代码并提交到远程 
	-git checkout master
    -git merge dev 
    -如果出冲突,解决
    -git add .
    -git commit 
    -git push
    
    -解决冲突(删你的,同事的,合并起来)
    -git add .  git commit 

3 线下回滚,并提交

# 1 切换到master分支
# 2 回滚打某个版本  git reset --hard  版本号
# 3 强制提交代码 git push origin master -f

1 pycharm找回误删,修改的东西

history

2 git的变基

git rebase
posted @ 2020-07-28 14:29  pythoner_wl  阅读(560)  评论(0编辑  收藏  举报