Github教程(1)
作者:Grey
原文地址:Github教程(1)
Git基本命令
git diff:查看工作树,暂存区,最新提交之间的差别
举例:
在README.MD中增加一行
## This is the subtitle
执行git diff 命令,查看当前工作树和暂存区的区别。
$ git diff
diff --git a/README.md b/README.md
index fec5601..203cf31 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
Hello
+## This is the subtitle
说明:"+"表示新添加的行,"-"表示删除的行,由结果可知:增加了:## This is the subtitle
执行
git add README.md
将README.md文件加入暂存区
执行git diff HEAD 可以查看暂存区和最新提交的差别。
$ git diff HEAD
diff --git a/README.md b/README.md
index fec5601..203cf31 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
Hello
+## This is the subtitle
执行
git commit –m "this is your description"
将文件提交。
git branch:显示分支列表,并标识当前所在分支
$ git branch
* master
git checkout –b:创建并且切换分支
$ git checkout -b branch-a
M README.md
Switched to a new branch 'branch-a'
此时再运行git branch,显示当前分支为branch-a
$ git branch
* branch-a
Master
在branch-a这个分支操作并提交代码,代码回提交到branch-a这个分支而不会提交到master分支。
举例:
在branch –a这个分支中修改README.md文件,增加一行:
## this is branch-a
并提交,
$ git diff
diff --git a/README.md b/README.md
index fec5601..803aa74 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
Hello
+## This is the subtitle
+
+## this is branch-a
切换至master分支
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
查看master中的README.md文件,无增加行。
$ cat README.md
Hello
git merge:合并分支
首先我们切换回master分支,
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
然后,合并master和branch-a这个分支
执行:
git merge --no-ff branch-a
系统提示合并之前需要输入一些描述信息,按ESC并输入 :wq退出即可,
$ git merge --no-ff branch-a
Merge made by the 'recursive' strategy.
README.md | 3 +++
1 file changed, 3 insertions(+)
git log:查看历史提交记录
commit 182053ec7e8683e381996c683a7b04f43be57bd3
Merge: b1444e3 2806d72
Author: zenghui <zengh927@163.com>
Date: Tue Dec 15 19:31:02 2015 +0800
Merge branch 'branch-a'
commit 2806d720ed728ca55cc32c3091879eae8c8b5b5e
Author: zenghui <zengh927@163.com>
Date: Tue Dec 15 19:24:27 2015 +0800
add branch-a
commit b1444e36a2df109ce5414f5f00fd1ea97f3c1492
Author: zenghui <zengh927@163.com>
Date: Mon Dec 14 21:40:28 2015 +0800
Add T.java File
commit 0f2c6b68e711d74e35490bec6e6d8ab01e6a29d9
Author: GreyZeng <410486047@qq.com>
Date: Mon Dec 14 21:25:15 2015 +0800
git reset --hard + 哈希值:回溯到指定版本
执行:
$ git reset --hard b1444e36a2df109ce5414f5f00fd1ea97f3c1492
HEAD is now at b1444e3 Add T.java File
回溯到branch-a分支创建之前。
处理冲突
举例:
在master的README.md中增加一行:
## FROM MASTER
并提交
合并master和branch-a分支
$ git merge --no-ff branch-a
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
显示冲突
用编辑器打开README.md文件发现:
# Hello
<<<<<<< HEAD
## FROM MASTER
=======
## This is the subtitle
## this is branch-a
>>>>>>> branch-a
此时,只要手动修改一下文件:
# Hello
## FROM MASTER
## This is the subtitle
## this is branch-a
再次执行git add 和 git commit 即可
git push:推送至远程仓库
推送master到远程仓库:
$ git push -u origin master
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (9/9), 889 bytes | 0 bytes/s, done.
Total 9 (delta 0), reused 0 (delta 0)
To https://github.com/GreyZeng/Hello.git
b1444e3..6840c0a master -> master
Branch master set up to track remote branch master from origin.
也可以推送某个分支到远程仓库
比如:推送branch-a到远程仓库,需要执行以下命令:
$ git checkout branch-a
Switched to branch 'branch-a'
$ git push -u origin branch-a
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/GreyZeng/Hello.git
[new branch] branch-a -> branch-a
Branch branch-a set up to track remote branch branch-a from origin.
git clone:获取远程仓库
首先我们切换到其他目录下:
执行git clone https://github.com/GreyZeng/Hello.git
$ git clone https://github.com/GreyZeng/Hello.git
Cloning into 'Hello'...
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 15 (delta 0), reused 12 (delta 0), pack-reused 0
Unpacking objects: 100% (15/15), done.
Checking connectivity... done.
从而获取到远程仓库
同时,我们可以从远程仓库获取之前推送的branch-a这个分支
$ git checkout -b branch-a origin/branch-a
Branch branch-a set up to track remote branch branch-a from origin.
Switched to a new branch 'branch-a'
git pull:获取最新的远程仓库:
假如有人在master分支上push了新的代码,本地需要同步最新代码
$ git pull origin master
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/GreyZeng/Hello
branch master -> FETCH_HEAD
6b04921..c2c9aa0 master -> origin/master
Updating 6b04921..c2c9aa0
Fast-forward
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
相关文章
- 用过 mongodb 吧, 这三个大坑踩过吗?
- 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了
- MongoDB 在评论中台的实践
- 使用mongodb作为Quartz.Net下的JobStore实现底层的持久化机制
- mongodb之使用explain和hint性能分析和优化
- mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理
- mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理
- 双十一来了,别让你的mongodb宕机了
- GO语言开发环境搭建笔记
- PHP判断网络连通
- 开启phpMyAdmin的远程登录
- PHP_cURL初始化和执行方法
- PHP经典函数收集
- PHP所有函数列表
- php bbcode过滤
- php不使用中间变量交换两个变量的值
- 嵌入式:ARM异常中断指令SWI、BKPT、CLZ详解
- 嵌入式:ARM协处理器指令总结
- C++ 中的卷积神经网络 (CNN)
- 一个git仓库多个项目配置pre-commit代码校验