注: Git bash常用的控制台操作:
$ cd c:/users/totoro/Git 打开一个目录地址
$ cd .. 回到上一级目录
$ cd ~/.ssh 查找 .ssh 的文件夹并打开
$ ls ~/.ssh 打开目录 .ssh 文件夹下的目录
ctrl + D 退出控制台
一、 认识Git与GitHub的关系:
- Git:分布式版本控制工具
- GitHub: 用Git做版本控制的项目托管平台
二、 Git 下载地址:
Git官方下载地址:https://git-scm.com/downloads
安装参考网站:http://blog.csdn.net/Bitter_2014/article/details/4348516
注:记得勾选 自带命令行工具 Git Bash 或者 两者都有 (Git Bash & Git GUI)
本地创建版本库 右键单击:Git Bash Here
相关命令行:
操作命令 | 注释 |
---|---|
$ git init | git 初始化 |
$ git add “文件夹/ 单个readme.txt” | 添加到暂存库 |
$ git commit -m “注释add a new file” | 添加到版本库 |
$ git log –pretty=oneline | 查看HeadCommitId 记录 |
$ git reflog | 查看所有的操作命令 |
$ git reset –hard HeadCommitId | 恢复到指定的HeadCommitId |
$ git reset –hard HEAD | 查询当前的版本Head |
$ git rm “readme.txt” | 删除文件 |
$ git commit -m “cancel readme.txt” | 从版本库中确认删除 |
$ git checkout – “readme.txt” | 查询当前的版本Head |
git 的存放过程图:
相关命令操作
三、 使用GitHub, 创建 SSH
- HTTPS: 克隆对初学者来说比较方便,但是每次 fetch / push 代码都需要输入账号和密码
- SSH: 只需要配置好 SSH Key, 不需要每次输入密码, 但是必须时项目的拥有智能
生成SSH密钥过程:
- 查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除 - 生成 密钥:
$ ssh-keygen -t rsa -C “msniu33@163.com”
按3个回车,密码为空。得到文件: id_rsa和id_rsa.pub
-t 是格式
-C 是备注,一般为邮箱地址 - 读取文件是否已经生成, 也可以到安装路径下查看
- 查看是否已经有了ssh密钥:cd ~/.ssh
操作 命令 | 注释 |
---|---|
~/.ssh | 查看是否存在 |
ls ~/.ssh | 打开 .ssh 文件夹下的目录 |
cat ~/.ssh/id_rsa.pub | 读取指定路径的文件内容 |
- 添加密钥( id_rsa.pub 内容)到 GitHub
四、 正式从本地上传已存在的项目至GitHub
- https 上传命令
- SSH 上传命令
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:leftHandCat/webpackPractice.git
git push -u origin master
注:此处若push时有报错,需从新定义origin后push:
$ git remote rm origin
$ git push origin master
注:不能上传空文件夹,GitHub 不托管空文件夹,必须有子文件
五、 从GitHub 克隆项目到本地
$ git clone "clone地址"
- https
- SSH
六、 fork 其他GitHub的源代码
操作:
注意: fork 其他库的代码,clone 到本地,若要修改也需要 push 到自己的 GitHub 上,再 pull request 给之前 fork 的原地址,若别人接受了这个 pull , 则会在他的 GitHub 中同步更新。
七、 Git 建立分支管理:
分支策略
向 GitHub 提交 git push origin master
分支策略:
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样
一般的操作流程:
流程 | 操作命令 | 注释 |
---|---|---|
1 | $ git checkout -b dev | 创建分支 dev |
2 | $ git add gootle.txt | 修改gootle.txt 内容,添加至暂存区 |
3 | $ git commit -m “注释add new contents” | 确认添加到版本库 |
4 | $ git checkout master | 回到主分支master |
5 | $ git merge –no–ff -m “注释combine codes” dev | 合并dev与master代码 |
6 | $ git log –graph –pretty=oneLine –abbrev-commit | 查看合并情况 |
7 | $ git push origin master | 推送至 github |
其他命令:
操作命令 | 注释 |
---|---|
$ git branch | 查看分支 |
$ git pull | 更新版本库最新的代码 |
$ git branch -d dev | 删除 dev 分支 |
如图,可以看到具体分支的代码:
八、 Git 实现版本管理
- 给 HEAD CommitId 打上标签名
操作命令 | 注释 |
---|---|
$ git tag | 查看所有标签 |
$ git tag v1.0 | 给当前 HEAD 打标签为 v1.0 版本 |
$ git tag v2.0 8f6a807 | 给 HEAD id 为 8f6a807 打上标签为 v2.0版本 |
$ git tag -a v3.0 -m “给8f6a807标为 v3.0版” 8f6a807 | 给8f6a807标为 v3.0版,该方法可以增加注释 |
$ git push origin v1.0 | 将版本 v1.0 推送至 GitHub |
$ git push origin –tags | 一次性将所有的版本推送至 it Hub |
$ git tag -d v1.0 | 若没有提交可以在本地生效,若已提交,需要删除本地,再推送删除的 tag |
$ git push origin :refs/tags/v1.0 | 再推送删除的 tag, gitHub 同步删除 |
九、 GitHub 仓库 setting(可重命名,可删除等)
other: ‘’
删除文件:
git rm 'README.md' 本地删除文件
git rm -r 'hexo' 本地删除文件夹
git commit -m 'no need' 仓库删除备注
git push origin master 仓库删除
更新代码:
git pull 更新最新到本地
提交代码:
git add . 添加文件夹下所有的
git add README.md
git commit -m 'new file'
git pull 更新最新的
git push origin master 提交
强制提交
git push -u origin master -f
End