一、版本控制
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
在自己的项目的目录里面右键打开Git Bath Here,会弹出Git管理页面。
1.输入 git init 先初始化。会在这个项目的根目录下生成一个被隐藏的.git文件,我们的版本信息就会放到这个文件夹里面。但是这会儿它还没帮我们管理版本。
2.输入 git status 就会看到许多飘红的文件,表示这些文件我还没管呢。
3.输入 git add db.sqlite3 就把db.sqlite3这个文件管理起来了。
4.输入 git status 就会看到db.sqlite3就变成绿色得了,就表示被管起来了,其他的文件还是红色的。status就表示状态。
5.输入 git add . 就表示把这个文件夹里面的所有文件、文件夹及其子目录都管起来了。
6.输入 git status 就会看到所有的一级目录、二级目录等都变绿了,就都被管起来了。
7.输入 git config --global user.email "1439286684@qq.com" 需要先输入你的邮箱
8.输入 git config --global user.name "aaronthon" 再告诉它你的名字
9.输入 git commit -m "版本一" 变绿其实就改了一个状态,还没有管起来。这行代码运行之后,变绿的都被管起来了,都变成白色得了。
10.输入 git status 这是所有被管起来的文件都不显示了,这就是被copy走了,不显示了,但真实的文件还留在原来的文件夹里面并没有消失。
注意:提交给Git之前项目不能在运行状态。
11.当修改了自己的项目,输入 git status 就会显示红色的被修改的文件
12.输入 git add . 修改状态,变绿
13.输入 git commit -m "版本二" 提交给Git,这次修改的信息
14.输入 git status 查询状态
15.输入 git log 查询记录信息,会显示两条信息,一条是版本二,一条是版本一
16.输入 git reset --hard 这里是版本一的commit信息是一个数字和字母组成的一串字符 就这样会回滚到版本一的记录,真实的文件就会回到版本一的状态
17.输入 git log 就只能显示版本一的记录了。但是通过下面的命令还可以回到版本二的状态
18.输入 git reflog 就会显示版本二的信息
19.输入 git reset --hard 89d5ae8 就能回到版本二的状态。这里面的89d5ae8是版本二信息那行的第一个字符串。打开项目,就会看到真实的回到了版本二的状态。
20.下面是暂存区介绍
21.在一个版本提交之后,又写了一些新的功能。但是当这些新的功能只开发了一半的时候,发现前面的版本里面有BUG。这时需要把开发一半的新功能放到暂存区,回去修改GUG,修改完之后,并重新提交给Git。然后就可以把开发一半的新功能拉过来,就可以继续开发了。
22.输入 git stash 把开发一半的新功能放到暂存区
23.直接去修改BUG,修改完,输入 git add . 去修改状态,输入 git commit -m "修复BUG" 提交给Git
24.输入 git stash pop 这样BUG也修复了,写一半的新功能也回来了。(可能冲突)
25.输入 git stash list 查看暂存区
26.输入 git stash clear 清空暂存区
27.输入 git stash apply 编号,将指定编号记录从暂存区拿到工作区(可能冲突)
28.输入 git stash drop 删除指定编号的记录
29.咱们输入命令前一行的末尾都有一个括号括起来的master,它表示分支,它跟线上版本是一致的。
30.输入 git branch dev 创建分支,就是在原来的master分支上再创建一个dev的分支,dev就是开发版本。开发完了,让它和master分支合并
31.输入 git checkout dev 切换到dev分支,命令的后面都会显示括号括起来的dev了。
32.输入 touch a.log 在dev这个分支上创建a.log这个文件
33.输入 git commit -m "dev这个分支开发a.log" 提交到Git
34.输入 git log 可以看到有"dev这个分支开发a.log"这个记录,但是它在dev分支上,和master没任何关系
35.输入 git checkout master 切换到master这个分支,看原文件,是看得不到a.log这个文件的,这说明这是两个环境。
36.接下来继续在dev分支上开发,正在开发过程中master分支出现BUG,需要修复。这是需要先把dev的代码提交给Git,然后切换到master上。因为master的程序就是线上的程序,不要直接在master主分支去修改,这是只需创建一个bug分支去修改BUG即可,修复好之后,提交给Git。然后切换到master分支上,通过下面的命令合成分支即可。
37.输入 git checkout master 切换到master主分支上
38.输入 git merge bug 就把修复好的bug分支合并到主分支master了,这时master和bug的代码是一样的,所以一般修复完BUG就会删掉bug分支
39.输入 git branch -d bug 就把bug分支删掉了
40.输入 git branch 显示所有分支,就只有master和dev分支了
41.输入 git checkout dev 去dev分支继续开发。完成新功能后,dev和master的区别就是比master多了一个bug和一个新功能,这是将dev的程序提交到Git上,然后切换到matser主分支,将dev程序merge给master分支即可。
42.输入 git commit -m "dev新功能完成" 将完成的程序提交Git
43.输入 git checkout master 切换到主分支master上
44.输入 git merge dev 将dev程序merge到master上即可。注意,可能会产生冲突,遇到冲突要手动解决。ps:这是一定要兴奋,产生20000个冲突,你就没法去约会啦!!!就会没没女朋友了:)
45.用merge命令合并,它会保留两条线,一条是master的提交记录,一条dev的提交记录。两条线相对独立,使记录保留的更清晰。
46.git rebase dev 在主支线master里面,将dev合并,这样会将master和dev合并到一条线里面,这样会显得提交记录整洁,但是记录保留的不是很清晰。merge和rebase什么时候用,就要看需求了。
二、远程仓库
在码云或GitHub网站注册账号。并提前创建一个项目,项目的地址是系统给的仓库地址是https://gitee.com/aaronthon/first_item.git
1.输入 git remote add origin https://gitee.com/aaronthon/first_item.git 本地输入命令 将自己的仓库地址起名为origin
2.输入 git push origin master 将本地的项目推送到码云仓库,推送的是master主分支。会提示你输入码云的账号密码。
3.输入 git push origin dev 将本地项目的dev分支也推送到码云。
4.以上假如说都在公司开发传到码云远程仓库,接下来回到家继续开发就要从码云下载项目了.在电脑本地磁盘创建一个文件夹,名字自己定。进入这个文件夹,右键点击Git Base Here 。
5.输入 git clone https://gitee.com/aaronthon/first_item.git 就把这个项目下载下来了。
6.输入 ls 就会显示这个项目名字first_item/
7.输入 cd first_item/ 进入这个项目
8.输入 git branch 显示分支,你会发现只有master分支
9.输入 git branch dev 创建一个dev分支,但是这个dev分支和码云仓库的分支不一样,接下来这样操作。
10.输入 git checkout dev 进入dev分支
11.输入 git pull origin dev 这时不是克隆,是拉新代码用pull,从哪拉,就从https://gitee.com/aaronthon/first_item.git仓库地址拉,但是我们已经用origin来代替这个地址了。然后从这个地址就拉dev分支就行了。
12.输入 git branch 就会看到master和dev两个分支了。
13.在家也开发完了,(注意:都在dev开发),需要传到码云远程仓库。
14.输入 git push origin dev 这样就推送到原来的仓库的dev分支里面了。
15.第二天去上班了
16.输入 git pull origin dev 从仓库拉dev的最新代码,你就会看到在家写的代码了。