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,对方同意就可以了

 

posted @ 2017-08-07 14:59  qianxiamo  阅读(205)  评论(0编辑  收藏  举报