目录
3-1 添加文件 (必须三步骤,status、add、commit)
4-2-1 在远程仓库中创建项目,获取提供的http和ssh地址(上传使用http地址)
4-2-2 为本地添加远程仓库 -- git remote add 地址别名(业内别名origin) 远程仓库用户连接地址
4-2-3 保证本地是最新的代码,可解决冲突问题 -- git pull origin master
4-2-4 将本地的版本文件上传到远程库中-- git push oirgin master
5-2 下载代码到本地 - git clone 远程仓库上的http地址
5-3 获取他人代码更新 - git pull origin master
5-6 丢弃之前的修改 - git checkout a.py
6-3 创建分支 - git branch dev - 创建叫dev的分支
6-4 切换分支 - git checkout dev - 切换到指定dev分支
6-5 合并分支 - git merge dev - 将dev分支合并到主分支master上
一、git - 版本控制器 - 团队开发的协同开发工具
1-1 版本控制器分类 :
- cvs
- svn :集中式版本控制器 - 代码共同集合存在在一个svn服务器上,存在服务器宕机产生损失
- git:分布式版本控制器 - 每台开发者电脑上都存在一个完整的版本,日志以及分支信息,git服务器作为交换代码使用的中介和备份,不存在服务器宕机产生的损失
1-2 安装 - https://git-scm.com/
- windows - https://git-scm.com/
- linux - yum install git
- mac
1-3 工作区和版本库等概念
- 工作区:开发者的工作目录
- 暂存区:修改已被记录,但未被录入版本库的区域
- 版本库:存放变化日志以及版本信息
二、Git的基本前置操作配置(必须步骤)
2-1 git config 进行配置
- git config --global user.name ‘name111’
- git config --global user.email 'you@example.com'
2-2 创建git目录
- mkdir gitdir
2-3 git 初始化
- git init ----会创建一个.git隐藏文件,存在.get目录内
三、git管理本地仓库
注意:
- 不要将仓库建立在中文目录下
- .git是一个隐藏目录 -- ls -al 查看所有包括隐藏文件
- master 为主分支,各类操作需要进入master主分支内操作
3-1 添加文件 (必须三步骤,status、add、commit)
3-1-1 查看本地库信息
git status -- 查看文件状态,查看未添加和添加到git仓库的文件
本地已经操作完毕,完全提交到本地版本库中的显示信息,如下图:
3-1-2 提交文件到暂存区
git add a.py -- 将a.py文件保存在暂存区
git add a.py -- 将a.py文件保存在暂存区
3-2-2 提交文件到版本库
git commit -m ‘-m可以对文件添加一句注释’ a.py -- 将b.py提交到版本库
若出现如下图错误,表示没有配置user信息:
3-2 修改文件
- 直接vim或者其他软件对文件进行修改
- 同上添加文件的两步提交操作
- git add a.py
- git commit -m ‘-m可以对文件添加一句注释’ a.py
- 在较多文件的情况下 可以使用 git commit 直接回车编辑
3-3 删除文件
- git rm a.py - 在暂存区中删除文件
- git status - 查看信息,若出现如下图显示,则需要做第三部commit操作
- git commit -m '删除a.py文件' a.py -- 在本地库中删除文件
四、远程仓库的操作
4-1 远程仓库
- 国内:https://github.com/ -- github
- 国外:http://git.oschina.net/ -- 码云
4-2本地文件上传到远程仓库
4-2-1 在远程仓库中创建项目,获取提供的http和ssh地址(上传使用http地址)
4-2-2 为本地添加远程仓库 -- git remote add 地址别名(业内别名origin) 远程仓库用户连接地址
4-2-3 保证本地是最新的代码,可解决冲突问题 -- git pull origin master
错误信息1 - 未配置pull:
错误信息2 - 无法合并本地和远程库:
解决方法一:从远端库拉下来代码 , 本地要加入的代码放到远端库下载到本地的库, 然后提交上去 , 因为这样的话, 你基于的库就是远端的库, 这是一次update了
解决方法二:git pull origin master --allow-unrelated-histories;后面加上
--allow-unrelated-histories
, 把两段不相干的 分支进行强行合并
4-2-4 将本地的版本文件上传到远程库中-- git push oirgin master
注意:过程可能需要输入用户名密码,即远程库的用户名和密码
如果第一次输入错误,则可以在控制面板中进行凭据修改,如下图:
4-2-5 linux 下重置连接用户名密码
重置连接用户
- git config --global user.name ‘name111’
- git config --global user.email 'you@example.com'
切换到指定幕落 clone项目文件包
git clone http://xxxxx.git
重新输入用户名密码连接。
之后再次使用pycharm进行连接,可重新让你输入用户名和密码
五、远程仓库的团队合作
5-1 项目成员的添加合作
5-2 下载代码到本地 - git clone 远程仓库上的http地址
5-3 获取他人代码更新 - git pull origin master
5-4 项目日志的改动查询
可以使用git log --pretty=online 让日志单行显示
5-5 项目版本的切换
5-6 丢弃之前的修改 - git checkout a.py
六、分支管理
6-1 分支的作用
假设网站现有支付宝支付功能,现在需要上线微信支付的功能,此时涉及修改的文件为:wechat.py, ali.py
刚做到一半,突然有个紧急的bug:支付宝支付之后不能修改状态,那此时你需要立即修改这个bug,需要修改的文件是ali.py
但是问题是,ali.py你已经做了一半了,而且尚未完成,直接再次基础上修改,肯定会有问题,把ali.py倒回去?那之前的工作就白费了。
此时你肯定会想,能不能在做微信支付的时候,能否把仓库复制一份,再此副本上修改,不影响原仓库的内容,修改完毕之后,再把副本的内容合并过去
那这个就是分支的概念
前面见过的master就是代码的主分支
实际中,我们一般不会直接提交代码到master上
而是会创建一个分支dev,在dev分支上,进行开发测试,没有问题了之后,在合并到master上
6-2 查看分支 - git branch
6-3 创建分支 - git branch dev - 创建叫dev的分支
6-4 切换分支 - git checkout dev - 切换到指定dev分支
6-5 合并分支 - git merge dev - 将dev分支合并到主分支master上
注意:在合并分支时,必须自身位于分支中
七、远程服务器配置
八、公钥登陆