Git 分布式版本控制系统
版本控制
之前的版本控制是通过文件管理版本,每个版本需要保留
文件管理缺点:
- 多个文件
- 协同操作 将文件发来发去
- 容易丢失
版本管理工具
- VSS 有人在修改代码的时候,别人不能修改
- SVN 集中式版本管理,服务端有所有的版本,客户端只有一个版本
- Git 分布式版本管理系统
git命令
一定要在.git 目录进行提交
创建git
进入程序目录 git init 创建.git文件,包含所有的版本
|
|
工作区:当前程序目录
版本库:.git
- 暂存区
- 分支
提交全部的文件:git add . 当前目录所有文件添加到暂存区
git commit 提交到分支
工作区变化后,重新提交
工作区的文件修改后,git自动检测
git ls-tree head 查看分支中的所有的文件
git ls-files 查看暂存区和分支中的文件
回滚操作:
git reset –hard 版本号
回滚到上一个版本git reset --hard HEAD~1
再回去
查看所有的日志:git reflog
git reset –mix 版本号 默认是mix
再用git checkout
或者直接用 git reset –hard
###
线上遇到bug
在工作区工作,把当前的拿走git stash 将当前已经做过的修改 保存到一个临时的地方
修复bug后再回来
git stash list 查看临时目录中的内容
git stash pop 就能拿回来,然后继续开发
合并分支出现冲突
- stash
同一个文件会出现冲突,手动解决
都保留代码,程序员手动解决
手动解决冲突,解决冲突后, git add .
git commit -m ‘解决冲突并提交’
- 分支
注意当前所在分支
git branch
创建分支
git branch dev
跳转分支
git checkout dev
git checkout –file
git checkout -b xxx 创建并切换到xxx分支
分支合并
在mater中进行合并
git merge bug
删除bug分支
git branch -d bug
远程仓库
公共:
- GitHub
- 码云
- CSDN
创建别名origin
git remote add origin https://
推送代码
git push origin master
git checkout dev
git push origin dev
下载代码
git clone https://
下载来的是master
git branch -a
获取原来的dev分支
git branch dev origin/dev
git checkout dev 切换到dev开发
add
commit
推送:
git push origin dev
公司:
git checkout dev
git fetch orign dev
git fetch orign pull 劲大
私有:
- Gitlab(自己搭建)
协同开发
多人共同开发,还可以设置权限
github中先创建组织:new organization
邀请成员
有人已经提交了,先pull
参与开源项目
fork
git clone
提交给自己,然后new pull request
ssh
ssh-keygen.exe
把公钥放到github中
免登陆
vim.gitignore
在创建Git项目的时候,直接选择Python的ignore
里面写不提交的
*.pyc
GitHub已经把所有语言的
https://github.com/github/gitignore
https://github.com/github/gitignore/blob/master/Python.gitignore
还有pycharm中的 xml