git使用过程中经常使用到的命令
和分支有关的命令
- 创建分支
git branch newBranchName
- 查看分支信息
git branch
该命令会显示本地所有的分支,并在当前分支前加上*
;
git branch -r
该命令会显示远程所有的分支;
git branch -a
该命令会显示本地和远程所有的分支 - 切换分支
git checkout branchName
- 删除分支
git branch -d branchName
注意不能在当前分支上删除当前分支,必须切换到其他分支。 - 可以将创建分支和切换分支合并到一步
git checkout -b newBranchName
- 分支的合并
git merge branchName
/git rebase branchName
merge
和rebase
的合并方式不同。
注意: 刚创建的空的git库是无法直接使用 git branch
命令的,需要一个提交来创建第一个分支,即 master
分支。
关于查看的命令
1. 查看分支的提交记录
git log [参数]
注意: 该命令只能查看当前分支上的存在的提交记录。
参数有:
git reflog
该命令能查看所有分支上的所有提交记录,包括已删除的commit记录和reset的操作。
2. 查看有哪些文件
git ls-files [参数]
参数有:
3. 查看git对象
git cat-file [选项] git对象SHAP-1
选项:-p
:显示对象内容;-t
:显示对象类型;-s
:显示对象大小。
git show git对象SHAP-1
- 对于
commit
对象,它显示日志消息和文本差异; - 对于
tag
,它显示标签消息和引用对象; - 对于
tree
对象,它显示的名称; - 对于简单的
blob
对象,它显示了普通的内容。
- 对于
4. 关于差异
git diff
:工作区和暂存区的差异;git diff commitId/HEAD
:工作区和某个commit/当前commit的差异;git diff --cached
:暂存区和本地仓库的差异;git diff commitId1 commitId2
:两个commit之间的差异;git diff -- file1 file2
:在上面命令基础上加上-- file1 file2
可以比较具体文件的差异。
5.跳到指定的commitId/指定commitId中的文件
-
git reset [选项] [commitId] [fileName]
注意: 该命令并没有修改commitId链表,但是修改了当前分支指向的commitId,所以当跳到之前的commitId后,要想回来,是可以的,但必须知道之前的commitId,但是通过git log
是无法查询到的,相当于清除了一部分commitId。选项如下:
--mixed
:默认参数,将本地仓库跳到制定的 commitId,同时将暂存区修改为commitId的内容;--hard
:本地仓库、暂存区、工作区都修改为指定 commitId 的内容;--soft
:仅将本地仓库修改为指定 commitId 的内容。
当有参数fileName时,只有–mixed一种可能,表示HEAD不动,将Index区域,即暂存区里的相应文件更新为commitId里的文件内容
-
git revert commitId
它和git reset
的区别是:它是产生一个新的commitId,并且当前分支指向它,它保留了之前的所有commitId。 -
git checkout [commitId] [fileName]
只有参数commitId
时,和git reset --hard commitId
作用一样;当有参数fileName
时,将Index区域和工作区的相应文件都更新为commitId里的文件内容。
git checkout commitId
和git reset commitId
区别:
7.删除文件
rm fileName
:仅从工作区删除文件;git rm --cached fileName
:仅从暂存区删除文件;git rm fileName
:从工作区和暂存区同时删除文件;
要想删除本地仓库中的文件,可以先从暂存区删除然后commit。
从暂存区删除文件;
git rm fileName
:从工作区和暂存区同时删除文件;
要想删除本地仓库中的文件,可以先从暂存区删除然后commit。