常用git命令及解释
git blame
如果要查看指定文件的修改记录可以使用 git blame 命令,格式如下:
git blame
git blame 命令是以列表形式显示修改记录,如下实例:
$ git blame README.md
4033d1a5 (azermu 2021-05-13 14:58:17 +0800 1) # mytest
4033d1a5 (azermu 2021-05-13 14:58:17 +0800 2) hello world
4db869a0 (azermu 2021-05-13 15:07:56 +0800 3) hello china
git log --oneline
我们可以用 --oneline 选项来查看历史记录的简洁的版本。
添加远程版本库:
git remote add [shortname] [url]
shortname 为本地的版本库,例如:
提交到 Github
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git
$ git push -u origin master
这个好像clone之后就会自动的add,我clone了别人的仓库后直接查看就会有。前提事你得配好GitHub的ssh。配置ssh 菜鸟教程。
$ git remote -v
origin git@github.com:Antabot/White-Jotter.git (fetch)
origin git@github.com:Antabot/White-Jotter.git (push)
git remote add的详细解释,git远程仓库分支的各命令的具体解析(git remote add)。
git pull 命令用于从远程获取代码并合并本地的版本。
git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。 命令格式如下:
git pull <远程主机名> <远程分支名>:<本地分支名>
实例
更新操作:
$ git pull
$ git pull origin
将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
git pull origin master:brantest
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin master
一般都使用git pull origin master直接更新整个本地仓库。
git push 命令
git push 命用于从将本地的分支版本上传到远程并合并。
命令格式如下:
git push <远程主机名> <本地分支名>:<远程分支名>如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>
实例
以下命令将本地的 master 分支推送到 origin 主机的 master 分支。
$ git push origin master
相等于:
$ git push origin master:master
$ touch runoob-test.txt # 添加文件
$ git add runoob-test.txt
$ git commit -m "添加到远程"
master 69e702d] 添加到远程
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 runoob-test.txt
$ git push origin master # 推送到 Github
Git fetch和git pull的区别
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git pull:相当于是从远程获取最新版本并merge到本地
详细解释,Git fetch和git pull的区别。
git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写
git status
用于查看在你上次提交之后是否有对文件进行再次修改。
通常我们使用 -s 参数来获得简短的输出结果:
$ git status -s
AM README
A hello.php
git diff
git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。
git diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件对区别。
git diff 有两个主要的应用场景。
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
git config --list
查看所有git的global配置
git add 命令
git add 命令可将该文件添加到暂存区。
添加一个或多个文件到暂存区:
git add [file1] [file2] …
添加指定目录到暂存区,包括子目录:
git add [dir]
添加当前目录下的所有文件到暂存区:
git add .
git commit 命令
git commit 命令将暂存区内容添加到本地仓库中。
提交暂存区到本地仓库中:
git commit -m [message]
[message] 可以是一些备注信息。
提交暂存区的指定文件到仓库区:
$ git commit [file1] [file2] … -m [message]
$ git commit -a:-a 参数设置修改文件后不需要执行 git add 命令,直接来提交,一般不使用
git reset 命令
版本回退,详细解释,git reset 命令。
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
git clean -df #返回到某个节点,(未跟踪文件的删除)
git clean 参数
-n 不实际删除,只是进行演练,展示将要进行的操作,有哪些文件将要被删除。(可先使用该命令参数,然后再决定是否执行)
-f 删除文件
-i 显示将要删除的文件
-d 递归删除目录及文件(未跟踪的)
-q 仅显示错误,成功删除的文件不显示
一般要还原无用的修改就用如下命令
$ git checkout . && git clean -df
git init
初始化一个本地仓库
git clone
git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
$ git clone https://github.com/tianqixin/runoob-git-test
Cloning into 'runoob-git-test'...
remote: Enumerating objects: 12, done.
remote: Total 12 (delta 0), reused 0 (delta 0), pack-reused 12
Unpacking objects: 100% (12/12), done.
一般使用clone命令会自动init当前目录,产生.git文件。