git

1.项目--仓库
一个项目,一般情况下,对应一个代码仓库(repo),默认创建master分支
2.比如说我是一个开发人员,也要修改代码,但是我本地是没有代码,所以需要clone 一份代码到我的本地
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github$ git clone https://github.com/dinghunter/redis_cluster.git

Cloning into 'redis_cluster'...
remote: Counting objects: 66, done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 66 (delta 29), reused 13 (delta 4), pack-reused 0
Unpacking objects: 100% (66/66), done.
Checking connectivity... done.

切换到代码目录下
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github$ cd redis_cluster/

查看我本地的分支,默认是本地的master,相对应的origin master(也就是远程master),正常情况下,origin master会修改成受保护的,
不允许你直接在master上修改代码,所以一般人都会在自己的分支上修改修改
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git branch
* master //看下我现在就处于master分支下


3.现在我要修改代码,因为最好不要在master上修改,所以我需要在本地上创建一个分支,我取名叫redis-cluster
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git checkout -b redis-cluster

Switched to a new branch 'redis-cluster'
表示的意思我创建了一个redis-cluster的分支,并且切换到到这个分支下

dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git branch
master
* redis-cluster
现在我就在redis-cluster这个分支下,本地还有一个分支叫master,我可以在redis-cluster和master互相切换,
命令如下:
git checkout master
git checkout redis-cluster 注意,我这里是没有带 -b 这个参数的,你思考下为什么?

4.我现在要增加一个a.txt文件,操作如下
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ touch a ///创建了一个a的文件
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ vim a //通过vim编辑器修改
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git add a //增加了一个a文件
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git commit -m "add file a"
[redis-cluster 960445f] add file a
1 file changed, 1 insertion(+)
create mode 100644 a
//通过git commit a这个文件到redis-cluster这个分支,-m 表示添加的备注信息

提醒: 在这个情况下,我在本地可以看到redis-cluster这个分支,别人是看不到,所以我们push 这个分支到origin,
验证如下:
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git branch ///我本地的分支
master
* redis-cluster
查看所有的分支(包括本地和远程的):
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git branch -a
master
* redis-cluster
remotes/origin/HEAD -> origin/master
remotes/origin/master

6.我现在需要把我本地的分支push 到origin
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git push origin redis-cluster
Username for 'https://github.com': dinghunter
Password for 'https://dinghunter@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To https://github.com/dinghunter/redis_cluster.git
* [new branch] redis-cluster -> redis-cluster

现在查看下所有的分支(本地和远程),你会发现多了一个: remotes/origin/redis-cluster 这个分支,表示我已经成功push 这个分支了
别人也可以看到我创建的这个分支。
master
* redis-cluster
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/redis-cluster

7.查看我的提交记录
dinghao@dinghao-ThinkPad-X1-Carbon-3rd:~/github/redis_cluster$ git log
commit 960445fba81ff0e36a68727e1bc39c5ee4b3a187
Author: dinghao <dinghunter@gmail.com>
Date: Fri Jul 1 11:50:45 2016 +0800

add file a

8.下面我要做的就是把redis-cluster 的代码merge到master上,两种方式:由于我的代码仓库放在github上,所以通过github的界面操作实现,另外一个方式,git 命令行方式实现,下次再讲

注意:下次讲的内容,git merge代码, git 删除分支,git回滚代码

原文地址:https://www.cnblogs.com/jiangtuzi/p/5632631.html