Git 学习记录
Git作为项目管理工具,已经成为开发者首选。Git概念繁多,理解不清楚,还真不太好办事。现将这段时间学习使用Git的笔记记录如下:
一、Git的概念
HEAD: 是一个游标,此游标指向当前分支。
工作区: 是IDEA上能体现出来的代码工作目录,未提交的代码也是在此区域内
暂存区: 是与工作区相对应的虚拟的工作目录,切换到一个分支版本代码时,同时会把代码切换到工作区与暂存区。工作区新增变更的代码,需要先添加到暂存区做版本控制,暂存区与工作区代码对比,有变动的才可被提交到代码版本库。
代码版本库:是真正的受控代码区
二、常规命令
$ git status
此命令是查看当前Git状态, 包括目前哪个分支,有什么东西修改了。
一般有两种情况:
$ git status
On branch release/v5.0.0
nothing to commit, working directory clean
$ git status
On branch release/v5.0.0
Changes not staged for commit:
(use "git add..." to update what will be committed)
(use "git checkout --..." to discard changes in working directory)
modified: src/main/java/com/nd/esp/portal/config/WebConfig.java
no changes added to commit (use "git add" and/or "git commit -a")
$ git add
是把变更添加到暂存区使暂存区与工作区的内容比对
$ git commit
提交到代码版本仓库区,一般可以使用 git commit -am "注释" //提交先添加比对,并提交一段注释
$ git log
查看提交commit日志,
commit 6877338433a3bcfa1d95eaf80fa1fef18af101b1
Author: 248751
Date: Wed Dec 13 15:18:27 2017 +0800
测试第二次提交
Change-Id: If85188a21cfe8866c517a9e171d2dce32e02c8d9
$ git revert
撤回提交,这个慎用,是从版本库到暂存区到工作区都回退到某个提交,意味着可能代码会丢失(当然,可以用过history找回);会产生一段Revert Log 提到 本次撤回版本以前的Log
$ git reset
是重置到某个提交。当然,有几个参数,--soft,是指重置到暂存区,也就是被重置的提交无效,需要重新提交。 --hard,与revert类似