协同开发,版本管理
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:
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