初始化 git 仓库,不解释
git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。
git add -u:将文件的修改、文件的删除,添加到暂存区;
git add .:将文件的修改,文件的新建,添加到暂存区。
git add * :将当前目录下所有文件添加到暂存区,包括文件的修改,文件的新建。
其中,add * 和 add -A 区别在于,git add * 会忽略.gitignore 把任何文件都加入。add -A 不忽略
将暂存器内容提交到版本库
用于显示工作目录和暂存区的状态
查看历史提交记录
git reflog命令可以查看所有分支的所有操作记录信息
包括已经被删除的 commit 记录和 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 的对比是工作区与最后一次commit提交的仓库的共同文件
当工作区有改动,临时区不为空,git diff 对比的是工作区与暂存区的共同文件
git diff HEAD:工作区与版本库之间的差异
git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别
git diff branch1 branch2 --stat 显示出所有有差异的文件(不详细,没有对比内容)
git checkout . 丢弃工作区的修改,使得回到最后一次 git commit 或者 git add 的状态
git checkout -- file 同理
git checkout -f 丢弃暂存区和工作区的所有文件
删除文件,并且删除直接后直接进暂存区。如果像删除一个文件并且提交到库中需要:
- $ 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 add origin git@github.com/xxxxxx 表示添加一个远程仓库,其中origin 只是仓库的本地别名,也可以换成别的名字。
对于一个 git 目录来说,可以同时连接多个远程仓库,此刻就需要给他们不同的别名。
git remote -v 查看当前已经连接到仓库
git remote rm name 删除远程仓库
git remote rename old_name new_name 修改仓库名
git push -u origin “master” 向 git 服务器推送代码
其中 -u 为这个命令添加一个别名,以后使用 git push 就是和 git push origin “master” 一样的效果
下面来说一下分支创建,合并,解决冲突等有关分支的操作。
git checkout dev 切换到 dev 分支
git checkout -b dev 创建一个名为 dev 的分支,并且切换到该分支
当然 checkout 命令也可以切换分支
们注意到切换分支使用git checkout
,而前面讲过的撤销修改则是git checkout --
,同一个命令,有两种作用,确实有点令人迷惑。
git 提供了 switch 命令独立出这个操作
git switch -c dev 创建并切换分支
git switch 切换分支
git branch 查看当前分支
git branch -d 查看 删除分支
git merge dev 使当前分支与 dev 分支合并