Git
控制系统
是否依稀记得你的毕业论文?
1 毕业论文_初稿.doc 2 毕业论文_修改1.doc 3 毕业论文_修改2.doc 4 毕业论文_修改3.doc 5 毕业论文_完整版1.doc 6 毕业论文_完整版2.doc 7 毕业论文_完整版3.doc 8 毕业论文_最终版1.doc 9 毕业论文_最终版2.doc 10 毕业论文_死也不改版.doc 11 ...
是否还记得老师让你重新自己写的项目?
1 blog1 2 blog2 3 blog3 4 blog4 5 ...
以上是使用文件或文件夹进行版本管理,以上方式有缺点:
多个文件,保留所有版本时,需要将多个文件保存在本地
协同操作,多人协同操作时,需要将文件发来发去...
容易丢失,被删除意味着永远失去(可以选择网盘)
为了解决上述问题,应运而生了版本管理工具:
VSS-- Visual Source Safe(不用:在修改时别人不能用)
SVN --CollabNet Subversion(修改提交后会将之前的版本覆盖)
Git
...
版本管理工具都一般包含客户端和服务端
客户端(用户):本地编写内容,向服务端获取或提交内容
服务端(网盘):保存所有版本的文件
二.Git
1.什么是Git?
分布式版本控制系统
2.安装
http://git-scm.com/
3.命令
a.切换需要上传的目录路径:
b.基本命令
1 git init 2 初始化 生成.git文件,用于保存git相关所有信息 3 git status 4 查看状态 5 git add ./文件名 6 添加到暂存区 7 git commit -m '提交信息' 8 提交 9 10 配置: 11 git config --local user.name '名称' 12 git config --local user,email '邮箱' 13 14 其他: 15 git ls 16 git ls-tree 查看版本中所有文件 17 git ls-files -s 查看暂存区和版本中所有文件
c.回滚
1 git log 2 查看历史记录 3 git reset --hard '特殊字符串' 4 回滚操作 5 git reflog 6 恢复查看历史记录 7 git reset --hard '特殊字符串' 8 再次回滚到原始状态
d.1 stash
1 git stash 2 将当前已经做过的修改,保存到一个临时地方 3 git stash pop 4 将临时地方内容重新放回工作区 5 6 修复bug时: 7 git stash 8 修复bug 9 git add 10 git commit -m '修复bug' 11 12 git stash pop 13 无冲突:过 14 有冲突:手动解决 15 以下示例: 16 ''' 17 <<<<<<< Updated upstream 18 修复bug 19 ======= 20 开发到一半 21 ============ 22 >>>>>>> Stashed changes 23 ''' 24 25 26 git add 27 git commit -m '修复bug'
d.2 分支
1 master 2 线上版本 3 dev 4 开发功能分支 5 bug 6 修复bug分支 7 8 9 git branch dev 10 创建分支(注意所在当前分支) 11 git checkout dev 12 进入分支 13 14 ''' 15 开发功能中 16 ... 17 git add 18 git commit -m '' 19 ''' 20 21 出现bug 22 git checkout master 23 git branch bug 24 git checkout bug 25 ''' 26 bug修复中 27 ... 28 git add 29 git commit -m '' 30 ''' 31 32 bug和master合并 33 git checkout master 34 git merge bug 35 无冲突:过 36 有冲突:手动解决 37 38 39 dev和master合并 40 同上
d.3合并流程图
4.整体图示
5.远程仓库
以github示例:
a1注册账号
a.2创建仓库代码
b.应用场景
公司和家都要进行开发工作
b.1 公司办公
1 git remote add origin git@github.com:lyhw/ceshi.git
https://github.com/lyhw/ceshi.git
(SSH[生成一公钥,不需要每次连接都输入用户名及密码]/HTTPS(需要每次连接都输入用户名及密码)) 2 ##本地连接远程仓库 3 git checkout master 4 git push origin master 5 ##推送
b.2 下班在家
1 git clone git@github.com:lyhw/ceshi.git 2 克隆代码 3 cd www 4 切换目录 5 git branch dev origin/dev 6 创建dev分支并连接远程仓库dev分支 7 git checkout dev 8 写代码 9 ... 10 11 git add . 12 git commit -m 'cc' 13 git push origin dev 14 提交数据
b.3第二天到公司
1 git checkout dev 2 git fetch origin dev 3 将代码从远程仓库下载到本地版本库 4 git pull origin dev 5 将代码从远程仓库下载到本地工作区 6 7 开发功能1: 8 git add . 9 git commit -m 'mmm' 10 git push origin dev 11 12 开发功能2:(忘记提交,下班回家) 13 git add . 14 git commit -m 'mmm'
图示:
b.4 在家
1 git brabch dev 2 git pull origin dev 3 4 开发功能3: 5 git add . 6 git commit -m 'mmm' 7 git push origin dev
b.5 公司
由于之前开发的功能2没有提交,所有需要先将功能3下载到本地来,二者合并,看是否有冲突;
无冲突:过;
有冲突:手动解决;
完结后重新提交并上传至远程仓库.
6.协同开发
a.创建一个team和仓库,并邀请你的成员;
请在这里查看你的组信息
请在此处查看你所在组的仓库信息
b.打开仓库就可以看到成员提交的文件啦~~
1 git clone git@github.com:lyhw/ceshi.git 2 先把文件克隆到本地 3 4 修改后再提交 5 git add . 6 ....... 7 git pull origin master 8 上传前一定要先pull一下!! 9 看是否会发生冲突 10 git push origin master
注意:创建team者要设置成员权限,否则成员上传不成功;
7.其他
fork
1.打开你想要fork的文件,fork到你自己的仓库
2.使用命令,克隆到本地
1 git clone git@github.com:hiasaka/test.git
3.修改文件后提交到自己的仓库
4.如果你想要让文件拥有者也更改,需要创建一个 request,对方同意就可以了