从入门到实践
Git 是什么? 版本控制系统 多版本分支 多人合作 简单低成本的备份及版本回退
我们为什么需要Git? 存代码的OJ可能被黑掉 你使用rm -rf / 或者shift+del过于熟练 你的猫可能会帮你写代码
两点注意 不要使用GUI Lowb 丢人 不计算机科学家 不要使用中文 经常会出现兼容或者编码问题
如何安装Git Debian/Ubuntu Mac OS Windows apt-get homebrew msysgit (https://git-for-windows.github.io)
创建一个新的版本库(repository) 一个空路径 git init
版本更新 新建一个文件 git add . git commit -m ”commit massage” 或 git add <files> git commit -m ”commit massage” 可以理解成git内部有一个版本链表,每次记录的是修改 的内容
查看状态/历史 git status git log
版本控制 一般出现重大事故才会使用版本回退功能,所以用到的 时候现查就好 通常会使用两个分支master/dev来控制版本 在dev中每完成了一个功能将此版本merge到master上
分支管理 master为默认分支 创建分支dev 切换当前分支到dev 将dev合并到master git branch dev git checkout dev 将dev合并到master git checkout master git merge dev
分支合并 merge master
分支合并 merge master
分支合并 merge master
分支合并 merge dev master
分支合并 merge dev master
分支合并 merge dev master
分支合并 merge dev master
分支合并冲突 当两个分支merge时某一个文件都被修改的情况 git会尝试自动合并 如果失败,会提示你手动合并
远程仓库 在远程服务器上备份&分享你的代码 GitHub & Bitbucket 也可以自己用服务器搭建私人远程仓库
远程仓库 创建SSH Key并把它放到GitHub上 将本地内容关联并上传到远程仓库 ssh-keygen -t rsa -C "youremail@example.com" 可以不用设置密码 把 用户主目录/.ssh/id_rsa.pub 上传到GitHub上 将本地内容关联并上传到远程仓库 git remote add origin git@github.com:<GitHubID>/<repo- name>.git git push -u origin master (以后直接git push) 第一次会有SSH警告
远程仓库 想要下载别人的代码,或者你有两台电脑的场合 从远程仓库更新本地内容 git clone git@github.com:<GitHubID>/<repo-name>.git git clone https://github.com/<GitHubID>/<repo-name>.git 从远程仓库更新本地内容 git pull 有时push前会需要你先将远程内容pull下来并merge好
GitHub的其它 大多数开源软件都会将代码公开在GitHub上,并且附有 详细的说明文档 可以自行使用/学习 可以Fork别人的代码,通过Pull requests的方式参与代码编写 对感兴趣的人/代码可以Follow/Star 广告:https://github.com/TimerChen
Reference 廖雪峰Git教程 https://www.liaoxuefeng.com/wiki/00137395163059296 06dd18361248578c67b8067c8c017b000
THANKS Q&A