![eb4b0d7a45fa70733e439739498153fa.png](https://i-blog.csdnimg.cn/blog_migrate/192ca40cd2b05bf50955de68ca040ef9.jpeg)
看的课程是Lynda上面因此也就不PO出来了,因为大家也没法点进去.
Git本质上是一种版本控制系统,它能够让我们跟踪工程的进度.
在本地安装好Git之后, Git Bash能够帮助我们使用UNIX的命令.
- cd 命令能够帮助我们切换路径,比如切换到desktop的project文件中,我们使用
cd ~/Desktop/project
2. git init 可以帮助我们初始化某个文档作为一个Git repository
3. ls -la 你会发现一个.git 文件,这个文件能够帮助跟踪所有的改动在你的project中。
4. Git有两个不同的的地方能够存储文件。第一个是staging environment, 你能够添加任何的文件到这个环境中通过git add命令.
比如使用 git add index.html
第二个就是你本身就处于的环境
5.你可以通过git status观察到变化
我的电脑在这儿其实出了点问题,因此我使用
6. rm -rf .git 去重置了文件源
![396a5e46b622af2bb7825e11a68d6d02.png](https://i-blog.csdnimg.cn/blog_migrate/4d6241ce40086195d2ab5f6b49dff457.jpeg)
最后的结果是你会看到两行第一行是 change to be commited,第二行是 untracked files.
第一行意味着能够被committed
第二行意味着还没有被跟踪,说明Git都不知道关于about.html这个文件,
7.很多时候你会面临一大堆的文件想要添加,这种一个一个添加的命令显然不是特别够用,因此我们使用'git add .'这个命令即是全部添加,OK,我们搞定了,然后使用git status命令去查看一下几个文件的状态.
![0b7309489074456d63ace17b9145b5c1.png](https://i-blog.csdnimg.cn/blog_migrate/723aa57fc69578a8adb78ee14c8811ee.jpeg)
你可以一直保持那些加入的文件直到你想去提交他们 作为一个永久的文件.
8.git commit -m ''revision one''接下来我们就使用这个命令来提交文件作为第一个版本
![b13d5e61a0803a3e13f7b5e327a538b9.png](https://i-blog.csdnimg.cn/blog_migrate/6f8f99009f785e1a32e68eb12d5fe7be.jpeg)
提交后再使用git status 命令 我们就什么都不能发现了
![7bae2109f5520b8726ad14b11877e9ae.png](https://i-blog.csdnimg.cn/blog_migrate/619ec2e569f6cc32aadfadefc179ee0f.png)
9. git log 命令能够调取你提交的log信息
10.如果你改动文档 这时候使用git status 命令能够再次得到变动的文件
![d1093f72e8d5cf51d3df3aa5228d21e3.png](https://i-blog.csdnimg.cn/blog_migrate/2fe7cfbabcd2b5b804233461441b76d2.jpeg)
第一行表示这不是在staging的环境中,那么后面两行就是两个操作,第一个我们讲过了,也就是添加到staging 的环境中,第二个就是回滚到我们之前的revision one中.
11. git checkout -- index.html
这时候我们会发现内容已经回滚完毕了
12. 当使用git add . 命令后,我们再使用 git status 确认状态, 我们发现在staging environment中, 文件名变绿了,因此可以接着submit
![e827c69f15e026375bfb4e43b0e01c4e.png](https://i-blog.csdnimg.cn/blog_migrate/903b41233d038553e499d471fad2e8e7.jpeg)
13.当我们没有submit再修改的时候,我们会发现一个很有意思的东西
![5447faff2539bfa204def34aadc79793.png](https://i-blog.csdnimg.cn/blog_migrate/bce19267b2d86fddfdc8096402660f8c.jpeg)
然后我们发现原来staging的文件依旧在,我们可以通过git reset HEAD index.html进行删除第二次修改,然后我们得到
![d13a37bc32c25e49f583c04cdf58a547.png](https://i-blog.csdnimg.cn/blog_migrate/8a237cfb5ea59fdc0bfe60e9e94dc024.jpeg)
这其中就是第三次修改
如果我们不断的修改 不断的保存 然后commit 之后我们使用git log,我们能够得到一个log日志
14. what is gonna happen when I delete a file?
那么首先我先删除一个文件 然后使用git status进行查看,那么我会看到
![1df6b188a1b4650083e018114773d625.png](https://i-blog.csdnimg.cn/blog_migrate/a019065e840998717d1cbc44dac5cc45.jpeg)
在这儿之后,我有两个选择-也就是两个在框框中列出来的内容
第一个是git checkout -- about.html 这有点像是撤回键,那么我们能够看到about.html 回来了
第二个是git add -- about.html, 把这个文件加入到staging 环境中
![1cc280cc416b5a393bc6208e39a132a1.png](https://i-blog.csdnimg.cn/blog_migrate/880f8277d9367b19a3cfda7f2797ebf3.jpeg)
不过这个操作也能撤回(unstagged),就像在上图中括号里指出的那样 git reset HEAD about.html
![3b1bf578b12fffd8d3ec44a687b66fa3.png](https://i-blog.csdnimg.cn/blog_migrate/fe1ea12d46923a866ba66ce58d6a4f70.jpeg)
![07722881dbc3920018f8baccaf76f1c7.png](https://i-blog.csdnimg.cn/blog_migrate/1e2c01e3f005e8ca3f1f1590fd5664f5.jpeg)
之后再使用git status 就看到了 跟之前相同的一个状态
然后我们再使用 git checkout -- about.html
15. 当我们使用git rm about.html 的时候,我们会发现
about.html文件删除了
![b4ca33fff0ec64cd065531d3953996d3.png](https://i-blog.csdnimg.cn/blog_migrate/3598c8d1487b327b7b22f8bce0ba8b27.jpeg)
因此,git rm about.html这个命令相当于你手动删除,然后使用git add about.html 的结果
要撤回的话就是 git reset HEAD about.html 到 git checkout about.html
16. 当我们删了不知道什么东西或者很多很多东西需要进行批量操作的时候
我们使用 git add --all 把所有东西都push到staging 环境中
17. 接下来我们看一下怎么管理log文件
由于隐私,我就不po我win10上的图了,po个视频上mac的
![03511295814d5c3d0bfe1e8aec04657d.png](https://i-blog.csdnimg.cn/blog_migrate/645ac017cd0d4df4ad75ec4f98162959.jpeg)
我们可以使用 git checkout +某个对应版本的commit 来回滚到某个版本
![6b6a05bcf841c7fcca17ee13fe7ccd53.png](https://i-blog.csdnimg.cn/blog_migrate/9d2e2f273410f9c39eba9872b2549653.jpeg)
然后改变index的内容,之后使用git status 的得到
![6e3ea4b274dd1fd50719887905147d98.png](https://i-blog.csdnimg.cn/blog_migrate/c47cb4178ae18f2808599314c7ae8de6.jpeg)
先暂时忽略两个括号里的命令,先使用git add . 命令把文件添加到staging environment
然后得到
![04488e19f9e0aa5a8754533102d268d0.png](https://i-blog.csdnimg.cn/blog_migrate/7189c8f0712a9fe6a4e8d7324dd00b6e.jpeg)
然后我们commit这个文件 by git commit -m "alternate one"
![41570bdbf603849caa4758af12d06b4f.png](https://i-blog.csdnimg.cn/blog_migrate/e6975765af02f13fcd3c8cdcf6371987.png)
我们能够得到一段log 当我们使用git log命令的时候
![b0a333fb9e2f034abd76ddfef3a1d01b.png](https://i-blog.csdnimg.cn/blog_migrate/71607c8232309454aa8b5faf6d4229af.jpeg)
如果你想回到上一个分支,分支这个词在git中表示一系列我们的修改方向(可以把他当成衍生的树枝),使用git branch 得到
![e944faae0371c03892c9fc3c73d18187.png](https://i-blog.csdnimg.cn/blog_migrate/6619ed0d1b747e9a9eb052ad80289582.jpeg)
master实际上就是我们的主枝,然后我们只要输入 git checkout master,就又回滚到原来的主枝干上了
![6f11d5ea3de4836a138fd94265a6f2cc.png](https://i-blog.csdnimg.cn/blog_migrate/875e7d21ed91722ad6b79dd0cd5b2445.jpeg)
如果你想再回滚到之前的branch,你得记住 87eef2d这串号码,在不同的电脑上不同,记住就好了。
18. 然后使用git branch +另一个branch想要的名字+ 这串号码,我们就能新创一个branch啦
19. 之后使用git branch 这个命令读取branch的名字
![9efe880f85b746cf19cb820ee5761cff.png](https://i-blog.csdnimg.cn/blog_migrate/6ce1004359372f7043a8e6e2c7a37899.png)
我们得到两个branch的名字,然后可以使用git checkout alternate进行回滚
![b3eecb76950906f6f9f3f63b30b818e8.png](https://i-blog.csdnimg.cn/blog_migrate/e2bfa4e14793fc54be27733579e29fe3.jpeg)
20. 创建新的branch,可以直接使用 git branch + name
![fccc41471696a616ff179639e339c8ea.png](https://i-blog.csdnimg.cn/blog_migrate/e5323522be34fed6dc5eee3311602ef7.png)
21. 当我们想要融合两个branch的时候,比如把app01融入到master的时候,首先我们要确认我们在master这个branch中,然后使用git merge app01
![4c381266d7638feee162b77f9036897e.png](https://i-blog.csdnimg.cn/blog_migrate/0e3006db554315dfe43cd5cc800131d1.jpeg)
22.改branch的name,我们需要git branch -m +原名 +新名
23.删除某个branch, git branch -D +名字