初始化命令 git init
初始化 git 仓库,不解释
工作区、暂存区和版本库
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
git add 命令 添加暂存区
git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。
git add -u:将文件的修改、文件的删除,添加到暂存区;
git add .:将文件的修改,文件的新建,添加到暂存区。
git add * :将当前目录下所有文件添加到暂存区,包括文件的修改,文件的新建。
其中,add * 和 add -A 区别在于,git add * 会忽略.gitignore 把任何文件都加入。add -A 不忽略
git commit -m ‘xxx’ 命令
将暂存器内容提交到版本库
git atatus 命令
用于显示工作目录和暂存区的状态
git log 命令
查看历史提交记录
git reflog 命令
git reflog命令可以查看所有分支的所有操作记录信息
包括已经被删除的 commit 记录和 reset 的操作
常用于查看被删除的版本哈希值,用于恢复
git reset 命令
命令用于回退版本,可以指定退回某一次提交的版本。
git reset HEAD^ # 回退所有内容到上一个版本
git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
git reset 052e # 回退到指定版本
其中 HEAD 表示当前版本,HEAD^ 表示上一个版本,HEAD^^ 表示上上一个版本。
默认回退到暂存区,如果需要回退到工作区使用 git reset --hard HEAD
git diff 命令
git diff 命令用于比较文件,用法较多,列出一些比较实用的:
当工作区有改动,临时区为空,git diff 的对比是工作区与最后一次commit提交的仓库的共同文件
当工作区有改动,临时区不为空,git diff 对比的是工作区与暂存区的共同文件
git diff HEAD:工作区与版本库之间的差异
git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别
git diff branch1 branch2 --stat 显示出所有有差异的文件(不详细,没有对比内容)
git checkout 命令 (丢弃撤销文件用法)
git checkout . 丢弃工作区的修改,使得回到最后一次 git commit 或者 git add 的状态
git checkout -- file 同理
git checkout -f 丢弃暂存区和工作区的所有文件
git rm 命令
删除文件,并且删除直接后直接进暂存区。如果像删除一个文件并且提交到库中需要:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
无需使用 git add
git remote 命令
命令用于在远程仓库的操作
git remote add origin git@github.com/xxxxxx 表示添加一个远程仓库,其中origin 只是仓库的本地别名,也可以换成别的名字。
对于一个 git 目录来说,可以同时连接多个远程仓库,此刻就需要给他们不同的别名。
git remote -v 查看当前已经连接到仓库
git remote rm name 删除远程仓库
git remote rename old_name new_name 修改仓库名
git push 命令
git push -u origin “master” 向 git 服务器推送代码
其中 -u 为这个命令添加一个别名,以后使用 git push 就是和 git push origin “master” 一样的效果
管理分支系列操作命令
下面来说一下分支创建,合并,解决冲突等有关分支的操作。
git checkout 命令
git checkout dev 切换到 dev 分支
git checkout -b dev 创建一个名为 dev 的分支,并且切换到该分支
当然 checkout 命令也可以切换分支
git switch 命令
们注意到切换分支使用git checkout <branch>
,而前面讲过的撤销修改则是git checkout -- <file>
,同一个命令,有两种作用,确实有点令人迷惑。
git 提供了 switch 命令独立出这个操作
git switch -c dev 创建并切换分支
git switch 切换分支
git branch 命令
git branch 查看当前分支
git branch -d 查看 删除分支
get merge 命令
git merge dev 使当前分支与 dev 分支合并