Git简介之部分易混淆命令的简单介绍
在日常的工作中,公司使用Git来管理代码。但针对Git的基础知识,我掌握的不太好,经常需要边用边去搜,“如何用git实现xxx”,影响开发效率。为提升自己对Git的理解,同时加强记忆,就在这里记录一下自己在使用Git的时候,遇到的容易忘记和混淆的地方。
版本: v0.0.1
一. Git 基础概念
图源:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
Git的工作流见上图。基于此图,简单介绍Git中四个重要概念:
工作空间(workspace): 就是本地修改代码的地方。
暂存区(stage/index): git add 之后将工作空间的内容添加到暂存区中。
本地仓库(local Repository): 这里有工程的所有代码。使用git commit命令将暂存区的内容提交到本地仓库。
远程仓库(Remote Repository): 就是远程存放工程所有代码的服务器。
二. 常被混淆的命令
2.1 git clone / pull / fetch的区别
git clone: 将远程仓库的工程下载到本地上,并生成一个本地仓库。这就相当于是从0到1的过程,把远程的工程代码下载下来,准备干活!
git clone URL(https/ssh,支持不同的协议)
git pull: 在本地已经有工程的情况下,从远程”拉取”更新到本地仓库,同时与本地仓库合并。该命令事实上代表了两个操作的集合,即:
git pull = git fetch + git pull
git fetch: 又叫“提取”。这个命令只是从远程仓库拉到本地,不自动与本地的项目合并(merge)。会在本地生成一个新的分支,要想合并的话,需要手动调用git merge去合并。
git fetch branch_name
2.3 远程主机名
在执行git clone命令时,远程主机默认起名: origin。如果想改为别的名字,使用git clone命令的-o参数来修改。
git clone -o new_name url
通过git remote来管理名字。
git remote # 列出当前所有的主机名
2.2 git push的一些细节
主要记住下面这个push的格式:
git push <远程主机名> <本地分支名>:<远程分支名>
其他内容见文章 。上述格式也是参考这篇文章的。
后续待更。