协同开发和版本管理,分布式代码管理工具

git装好,既有客户端,又有服务端

远程仓库,github,码云,公司内部用gitlab

git的工作流程(核心总结)

"""
1)有红色信息(工作区有内容),就执行 add 
2)全绿信息(内容全部在暂存区),才执行 commit
3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本
"""

git工作区,暂存区,版本库操作

# 初始化仓库,会在指定的文件夹中生成一个.git隐藏文件夹,用来管理版本
git init 文件夹名
git init        	# 不加文件夹名,默认当前文件夹下的所有文件都被管理起来
git status		# 
git add a.txt 	# 把当前文件夹下的a.txt文件提交到暂存区
git add .		# 把当前文件夹的所有文件提交到暂存区

git commit -m '注释:提交了a'		# 将暂存区的数据提交到版本库,必须带注释信息
'''
把一个功能写完了,一次性把这个功能的所有文件提交到版本库,生成一个版本号, 
'''
git log		# 查看版本管理的日志,可以看到版本号
git checkout . 	# 把工作区的代码回退到指针指向的版本时的状态,点表示当前路径
git reset --hard c90616(某个版本号的一部分)# 从某个版本回退到提交指定版本时的状态,会移动指针

# 忽略文件,指定某些文件或文件夹不被git管理
'''
空文件夹不被管理
在.git文件夹所在路径(项目根路径)下新建一个名为.gitignore文件,将需要忽略的文件夹或文件加入到这个文件中
'''

分支管理

git branch	# 查看所有分支
git branch dev # 创建名为dev的分支
git checkout dev	#切换到dev分支
git branch -d dev	# 删除dev分支(处于某个分支时,不能删除这个分支,要先切换到别的分支)
git merge dev  # 一般先切换到master分支,然后执行这句,表示把dev分支合并到master分支上

git出现冲突的情况

合并分支,不同分支的同一个文件的同一行

多个人在同一个分支上,对同一个文件的同一行做了修改,先提交的人没问题,后提交的会冲突

git远程操作命令

git remote	# 查看远程仓库
# 项目的创始者
git remote add origin 远程仓库地址 	#和远程仓库建立连接,origin是给远程仓库起的一个名字,可以自己任意定义,一般不改
git  push origin master # 把本地当前所在的分支提交到远程的master分支

# 项目的参与者从远程仓库下载代码到自己的电脑上,做开发
git clone 远程仓库地址 

# 如果有人做了修改,提交到了远程仓库,使用这个命令让本地的仓库和远程同步一下
git pull origin master

#然后提交自己的代码到远程仓库,每次提交到远程仓库之前,必须先和远程同步一下,因为不允许跨版本提交
git  push origin  master


ssh连接和https连接

公司里面主要用ssh连接,因为sh连接不需要输用户名和密码

对称加密:加密和解密用同一套密码

非对称加密:公钥加密,私钥解密

生成一对公钥和私钥

# 在git命令行执行以下代码
ssh-keygen -t rsa -C "*@*.com"	# 生成一对公钥和私钥到用户家目录的.ssh文件夹下
# 用户家目录在windows上是:C:\Users\Administrator\  当前用户是Administrator
# 把公钥复制出来,在码云上配置(安全设置-->ssh公钥),就可以远程连接到码云上的代码仓库

pycharm操作git

协同开发同一分支冲突解决

分支合并冲突解决

  1. 在本地创建一个dev分支,提交到远程仓库
  2. 直接在远程仓库中创建一个dev分支

在本地解决冲突,合并好,同步到远程仓库

每天一到公司,先拉一下代码,然后写自己的,这样去避免冲突,因为别人可能提交了一些,