git 常用的基本命令
Feb 15, 2019
版本控制的概念:
Version Control System - VCS
- 中央式版本控制系统
Centralized VCS
- 分布式版本控制系统
Distributed VCS
status
status 是用来查看工作目录的当前状态的指令
git log
提交的历史
Head
其中这个括号里的 HEAD 是引用中最特殊的一个:它是指向当前 commit 的引用。所以它是指向当前commit的引用。当前 commit 在哪里,HEAD 就在哪里,这是一个永远自动指向当前 commit 的引用,所以你永远可以用Head来操作当前的commit
head 时当前git中的一个独特的引用 是唯一的,
branch
HEAD 除了可以指向 commit,还可以指向一个 branch,当它指向某个 branch 的时候,会通过这个 branch 来间接地指向某个 commit;另外,当 HEAD 在提交时自动向前移动的时候,它会像一个拖钩一样带着它所指向的 branch 一起移动。
例如上面的那张图里,HEAD -> master 中的 master 就是一个 branch 的名字,而它左边的箭头 -> 表示 HEAD 正指向它(当然,也会间接地指向它所指向的 commit)。
- 创建: git branch 名称
- 切换branch git checkout feature1
- 删除branch git branch -d feature1
Head 指向的branch不能删除 如果要删除 先用checkout 把head指向其他的地方
master
master ,其实是一个特殊的 branch:它是 Git 的默认 branch(俗称主 branch / 主分支)。
所谓的「默认 branch」,主要有两个特点: - 新创建的 repository(仓库)是没有任何 commit 的。但在它创建第一个 commit 时,会把 master 指向它,并把 HEAD 指向 master。
- 当有人使用 git clone 时,除了从远程仓库把 .git 这个仓库目录下载到工作目录中,还会 checkout (签出) master(checkout 的意思就是把某个 commit 作为当前 commit,把 HEAD 移动过去,并把工作目录的文件内容替换成这个 commit 所对应的内容)。
push
- push 是把当前分支上传到远程仓库 并把这个branch路径的所有commit s 也一并上传
merge
- merge 指定一个commit 把它合并懂啊当前的commit来
- 从目标 commit 和当前 commit (即 HEAD 所指向的 commit)分叉的位置起,把目标 commit
的路径上的所有 commit 的内容一并应用到当前 commit,然后自动生成一个新的 commit - 冲突