赞
踩
第一章=>
1、Git作用
2、Git简史
3、Git结构
4、Git与GitHub
5、本地库与远程库
第二章=>6、设置签名
7、基本操作
8、版本前进与后退
9、比较文件
10、分支管理
第三章=>
11、基本原理
12、GitHub注册与头像
13、本远程库交互
14、跨团队协作
15、Git工作流
第四章=>
16、分子流说明
17、GitLab服务器搭建
18、开发环境配置Git
****************************************************************************************************************************************************************************
- 1、Git能干什么
- 版本控制(个人数据的保存,团队协作的高效)、分支控制
****************************************************************************************************************************************************************************
- 2、Git简史
- (1)Linux开源代码的合并,鲁纳斯本人研发了Git用于满足这个需求。
- (2)优势:大部分操作在本地、完整性保证、快照形式增数据、分支操作流程、与Linux命令全面兼容
****************************************************************************************************************************************************************************
- 3、Git的结构
- 工作区(写代码)git add—>暂存区(临时存储)git commit—>本地库(历史版本)
****************************************************************************************************************************************************************************
- 4、Git与Github
- (1)局域网:Gitlab
- (2)外网环境:Github与码云
****************************************************************************************************************************************************************************
- 5、本地库与远程库
- (1)团队内部协作
- (2)外部协作
****************************************************************************************************************************************************************************
- 6、设置签名
- git config --list #查看签名信息
- git config --global user.name "HIT" #设置用户名
- git config --global user.email "wdfgdzx@aliyun.com" #设置用户邮箱
- ghp_5TLzhh34HAwvAh2Vr7REhJUdTZHwUJ3Unra$ #阿里云 1个月w
- git config --local credential.helper "" #清空历史设置信息
- #优先级:就近原则,项目级别 > 系统用户级别。如果都没有是不允许的
****************************************************************************************************************************************************************************
- 7、基本操作
- git status #查看git状态
- git add good.txt #添加到暂存区
- git rm --cached good.txt #从暂存区取回
- git commit -m "create good.txt" good.txt #保存到本地库
****************************************************************************************************************************************************************************
- 8、版本的前进与后退
- git reflog #查看版本日志
- #双击黄色部分即可复制
- git reset --hard 6540676 #这样就可以轻松的切换想要的版本,牛批Plus,就算本地文件彻底删除,从历史版本中也可以找到
****************************************************************************************************************************************************************************
- 9、比较文件
- vim apple.txt #编辑文本
- git diff apple.txt #比较文本标记前后的区别(工作区与暂存区的进行比较)
****************************************************************************************************************************************************************************
- 10、分支管理
- 在一次开发中master是主分支,hot_fix是修复bug的分支,feature_blue是蓝色背景的分支,feature_game是游戏的分支。分支让多个功能同时进行,提高效率;如果出现一个分支失败,不会影响到其他分支。
-
- git branch -v #查看当前分支
- git branch hot_fix #创建hot_fix分支
- git checkout hot_fix #切换到hot_fix分支
- git branch -v #当前分支会变绿
- git merge hot_fix #合并分支
- #当不同分支出现同行合并内容不同时,会出现冲突
- #需要手动修改冲突提示的文件并保存,然后用下面的
- git add modify.txt #添加修改文件到暂存区
- git commit -m "resolve conflict" #不带文件名,来提交解决
****************************************************************************************************************************************************************************
- 11、Git的基本原理
- (1)明文—>加密算法—>密文
- (2)完整性保证也是通过客户端加密VS服务端加密比对的一致性保证的
- (3)版本管理的本质是快照+指针,分支管理的本质是指针
****************************************************************************************************************************************************************************
- 12、Github账号注册与头像修改
- 注意:不建议使用163邮箱,有的信息可能收不到
****************************************************************************************************************************************************************************
- 13、本地库与远程库的交互
- (1)远程库的创建
- (2)本地关联远程库
- https://github.com/yuebuqun163/jianpu.git #岳创建的远程地址
- git remote -v #查看远程库地址信息
- git remote add origin https://github.com/yuebuqun163/jianpu.git #添加远程库地址
- vim test.txt #修改文件
- git add test.txt #添加到暂存区
- git commit -v "create test.txt" test.txt #添加到本地库
- git push origin master #推送到远程仓库,首次推送需要输入Personal access tokens(从github获取)
- #另一种方式是直接克隆
- git clone https://github.com/yuebuqun163/jianpu.git #直接克隆远程仓库
- cd 仓库目录 #切换到仓库目录
- (3)邀请团队内成员加入项目
- 2345_image_file_copy_9.jpg
- 被邀请成员会收到邮件地址,打开地址接受即可拥有对此项目的push权限。
- (4)远程库(可能包括信息修改)的拉取到本地
-
- #pull = fetch + merge
- git pull origin master #直接pull到本地,建议使用这个
- git fetch origin master #先fetch
- git merge origin/master #后merge
- (5)协同开发时冲突的解决(远程库不同人操作)
-
- #如果提交远程时,发现冲突
- git pull origin master #直接pull到本地,建议使用这个
- vim test.txt #编辑保存退出
- git add test.txt #添加到暂存区
- git commit -m "resolve conflict" #提交版本到本地仓库
- git push origin master #推到远程库
- #感受一个例子
- #老刘借给小王1W元,告诉小王10天后归还
- #老刘的妻子知道借钱但是不知道老刘说的期限后,要求小王5天后归还
- #小王就相当于github,他不能接受老刘妻子的请求
- #此时老刘妻子要先获取老刘的信息(git pull origin master)
- #然后和老刘协商出结果为10天,修改协议 vim test.txt
- #添加、本地库、最终提交远程库,小王github接受
****************************************************************************************************************************************************************************
- 14、跨团队协作流程
- (1)项目的fork
-
- https://github.com/yuebuqun163/jianpu.git #岳创建的项目地址
- #东方不能直接拉去,登录自己账户后,先进入上述地址fork一下,注意观察地址栏变化
-
- (2)关联自己的远程库
-
- https://github.com/dongfangbubai126/jianpu.git #东方fork的地址
- git remote -v #查看远程库地址信息
- git remote add origin https://github.com/dongfangbubai126/jianpu.git #添加远程库地址
- vim test.txt #修改文件
- git add test.txt #添加到暂存区
- git commit -v "create test.txt" test.txt #添加到本地库
- git push origin master #推送到远程仓库,首次推送需要输入Personal access tokens(从github获取)
- # push不好用的时候,一定要ipconfig /flushdns
- #另一种方式是直接克隆
- git clone https://github.com/dongfangbubai126/jianpu.git #直接克隆远程仓库
- cd 仓库目录 #切换到仓库目录
- (3)New pull request
- (4)登录岳的账号审核
- git pull origin master #最后岳拉取自己的项目到本地即可
****************************************************************************************************************************************************************************
- 15、Git工作流
-
- SVN式工作流、团队内协作(邀请)、团队外协作(fork and pull request)
****************************************************************************************************************************************************************************
- 16、分支流说明
- 2345_image_file_copy_12.jpg
****************************************************************************************************************************************************************************
- 17、Gitlab服务器搭建
- (1)配置Linux固定的IP地址
- cd /etc/sysconfig/network-scripts/ #切换目录
- ls -l #找到ifcfg-XXX文件并打开编辑
- TYPE=Ethernet
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=static #重要
- DEFROUTE=yes #重要
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=enp3s0
- UUID=ac2edfe1-9923-415c-add7-6b1078d8a684
- DEVICE=enp3s0
- ONBOOT=yes
- IPADDR=192.168.105 #重要
- GATWAY= 192.169.70.2 #重要
- DNS=192.168.70.2 #重要
- (2)安装Gitlab
- yum -y install wget #安装wget
- wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm #下载镜像
- yum install firewalld systemd -y #装防火墙
- service firewalld start #启动防火墙
- yum install -y curl policycoreutils-python openssh-server #安装ssh协议
- systemctl enable sshd #设置ssh自启动
- firewall-cmd --permanent --add-service=http #添加HTTP服务到firewalld
- firewall-cmd --permanent --add-service=https #添加HTTPS服务到firewalld
- systemctl reload firewalld #重启防火墙
- yum install postfix #安装Postfix以发送通知邮件
- systemctl enable postfix #将postfix服务设置成开机自启动
- systemctl start postfix #启动postfix
- yum install vim -y #安装vim编辑器
- rpm -ivh gitlab-ce-13.1.2-ce.0.el7.x86_64.rpm #安装Gitlab的rpm包
- vim /etc/gitlab/gitlab.rb #修改配置文件
- #修改访问URL
- #格式:external_url 'http://ip:端口'
- #external_url 'http://192.168.0.105:8099'
- #配置时区
- #gitlab_rails['time_zone'] = 'Asia/Shanghai'
- #unicorn['port'] = 8001
- #postgresql['shared_buffers'] = "256MB"
- #postgresql['max_connections'] = 200
- firewall-cmd --zone=public --add-port=8080/tcp --permanent #开放端口
- firewall-cmd --reload #重启防火墙
- gitlab-ctl reconfigure #重新配置Gitlab
- gitlab-ctl restart #启动Gitlab
- gitlab-ctl stop #停止Gitlab
- #最后访问http://192.168.0.105:8099/
- systemctl disable gitlab-runsvdir.service # 禁止Gitlab开机自启动
- enable gitlab-runsvdir.service # 启用Gitlab开机自启动
****************************************************************************************************************************************************************************
- 18、IDEA INTELLIJ、PYCHARM配置GIT
- # 先安装Git
- # File-Setting-Version Control-选择Git-bin-git.exe
- # File-New-Project from version control-GitHub-use token
- # VSC-enable version control integration-ok
- # VSC-Operations Popup-commit-全选-commit
- # VSC-Git-push-输入地址XXX.git-push
- # 如果执行报错,打开项目所在git,执行git pull origin master --allow-unrelated-histories然后再push
- ----------------------------------
- # PyCharm
- File -> Settings -> Version Control -> Git-选择Git-bin-git.exe
- VCS -> Checkout from Version Control -> Git-use token login
- # 上方有git按钮,可以进行add、commit、push、pull、clone操作
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。