版本管理系统Git

关注公众号“轻松学编程”了解更多。


常用图形界面:SourceTree

Git常用基本命令

git checkout 分支名    #切换分支
git checkout -b 分支名 #创建分支并切换到该分支
git push origin --delete 分支名 #删除远程分支
git branch -a #查看所有分支
git branch -D 分支名 #删除本地分支,注意先切换到到其它分支

将master分支内容提交合并到dev分支

git checkout master  #切换到本地分支
git pull #拉取远程文件到本地
git add . #提交到本地
git commit -m 'merge'
git checkout dev #切换到dev分支
git merge master #合并
git push origin dev #推送到远程分支
1、版本控制工具优势
  • 查看版本历史记录
  • 查看成长记录
  • 版本回退
  • 明确责任人
  • 多人协作开发
  • 同步团队其它成员的代码
  • 在自己的分支上工作
  • 中心化和分布式
  • 中心化(SVN):代码管理服务器在一台核心服务器上,所有人都必须和代码服务器保持网络连通
  • 分布式(Git):中心仓库是GitHub,可以有很多本地仓库
2、GitHub的注册与使用
  • Clone与Fork
  • Download
  • Git的安装与配置
  • 下载:https://git-scm.com/download/
  • git config --global user.name “xxx”
  • git config --global user.email “xxx”
3、Git常用命令
  • 本地仓库
  • 创建本地仓库
  • cd xxx #这里的xxx路径,是Linux风格路径,Windows上可以使用拖拽文件夹的方式自动形成
  • git init
  • 本地提交
  • git add xxx
  • git commit xxx -m “xxx”
  • 比较和查看日志
  • git status
  • git diff
  • git log
  • git log --pretty=oneline
  • git reflog #查看所有分支的所有操作记录(包括被删除的)
  • 版本回滚
  • git reset --hard
  • HEAD^
  • HEAD^^
  • HEAD~100
  • 具体版本号
  • git checkout – filename #检出文件(注意空格)
  • 如果add但没有commit时,检出的是缓存区的内容
  • add且commit了时,检出的是版本区的内容
  • 优先检出缓存区而不是版本区
  • 添加忽略
  • touch .gitignore
  • vim .gitignore
  • i // 进入编辑模式
  • esc,: // 进入命令模式
  • 在冒号后输入wq // 保存退出命令
  • 添加公钥到github账号
  • ssh-keygen -t rsa -C “your email”
  • cat id_rsa_pub
  • ssh-agent bash
  • 启动ssh-agent
  • ssh-add sirouyang
  • 绑定私钥
  • ssh -T git@github.com
  • 秘钥配对测试
  • 本地仓库关联远程仓库
  • cd local_repo_path
  • git remote add origin your_repo_address
  • git remote rm origin
  • git pull origin master
  • –allow-unrelated-histories #同意合并不相干的历史时
  • git push origin master
  • 操作远程仓库
  • git clone your_repo_address
  • #注意克隆下来的分支只是master分支,在分支上工作需要克隆后再做一下拉取分支的工作
  • git add .
  • git commit . -m “xxx”
  • git push origin master
  • 分支
  • 分支相关命令
  • -----↓创建和切换分支-----
  • git branch #查看所有分支
  • git branch 分支名 # 创建本地分支
  • git checkout 分支名 #切换到指定分支
  • git checkout -b 分支名 #创建并切换到分支
  • -----↓删除分支-----
  • git branch -d 分支名 #删除本地分支
  • git push origin --delete 分支名 # 删除远程分支
  • -----↓推拉分支-----
  • git pull origin 分支名 #拉取分支
  • git push origin 分支名 #推送分支
  • git push --set-upstream origin 分支名 #推送分支
  • -----↓合并分支-----
  • git merge 分支名 #合并分支(要先checkout到主分支)
  • -----↓查看合并历史-----
  • git log --graph #查看分支合并图
  • git log --graph --all // 命令行查看分支合并图
  • gitk --all // gitk工具查看分支合并图
  • git gui(启动后:repository–>visual all branch history) // gui工具查看分支合并图
  • 分支合并策略
  • master只要稳定上线版
  • dev是开发版,稳定后合并到master
  • 其余分支一边开发一边合并到dev
  • 分支案例
  • 张三克隆项目
  • 张三创建分支并push
  • 张三独自开发、提交、push
  • 历时做和张三相同的事情
  • dev分支合并张三分支
  • dev分支push
  • master合并dev分支
  • master分支push
4、解决冲突
  • 冲突案例
  • master提交公共资源
  • 张三拉取并修改公共资源
  • 张三提交并push分支
  • 李四拉取并修改公共资源,意见与张三不一致
  • 李四提交并push分支
  • dev合并张三分支
  • dev合并李四分支
  • dev处理冲突
  • dev提交并push分支
  • master合并dev分支
  • master分支push
  • 两个成员修改了相同文件的相同代码段,冲突爆发时机:
  • dev进行合并时
  • 拉取冲突分支的代码
  • 相同分支上的不同账号,后提交的那一个会发生冲突
  • 解决:删除冲突标记+修改为意见统一的代码
5、标签
  • git tag # 查看所有标签
  • git tag v1.0 # 给当前版本打标签,名称是任意的
  • git tag -d v1.0 # 删除指定标签(它对应的版本序号依然是存在的)
  • git push origin v1.0 # 推送标签到远程仓库
  • git push origin --tags # 一次性推送多个标签到远程
  • git checkout v1.0 # 切换到指定标签所对应的版本
  • git show v1.0 # 查看标签信息
6、多人协作开发
  • 添加公钥到github账号
  • ssh-keygen -t rsa -C “your email”
  • cat id_rsa_pub
  • ssh -T git@github.com // 测试提交权限
  • 添加成员公钥
  • 1、生成秘钥对
  • 2、让协作的github账号添加你的公钥
  • 3、切换Git注册的私钥
  • ssh-agent bash // 启动秘钥管理客户端
  • ssh-add your_private_key // 切换Git注册的私钥
  • 4、ssh -T git@github.com // 测试提交权限,测试通过则已经具有协作账号的提交权限
  • 团队其它成员如法炮制
  • 工作流程
  • 创建远程仓库
  • 创建dev分支,创建成员分支
  • 可选:为团队所有成员创建分支,他们各自clone并pull自己的分支
  • 各自克隆仓库到本地
  • 切换到各自自己的分支上工作
  • 每天至少一次提交代码到本地仓库
  • dev分支定期合并成员分支,并提交测试
  • dev分支通过测试后合并到master上线

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。


如果文章对您有帮助,请我喝杯咖啡吧!

公众号

git版本管理系统使用_github