git基础

1. 撤销提交

如果不小心运行了 git add * 把你不想跟踪的文件添加到了版本控制,使用如下命令撤销提交

1
2
3
4
5
6
7
8
9
git reset HEAD <File>
​````

## 2.撤销对文件的修改

如果修改了某个文件,但是想还原使用如下命令

​```bash
git checkout -- <file>

3.查看远程仓库列表

1
git remote

3.添加远程仓库

1
git remote add <shortname> <url>

例如

1
2
3
4
5
6
$ git remote add pb https://github.com/paulboone/ticgit
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
pb https://github.com/paulboone/ticgit (fetch)
pb https://github.com/paulboone/ticgit (push)

4.将本地修改提交到远程服务器

1
git push <remote> <branch>

下面的命令的意思是 将本地 master 分支推送到 server 服务器上.

1
git push origin master

5.了解远程仓库的详细信息

1
git remote show <remotename>

比如

1
2
3
4
5
6
7
8
9
10
11
12
13
$ git remote show origin
* remote origin
Fetch URL: git@github.com:lastdetective/myblogsourcecode.git
Push URL: git@github.com:lastdetective/myblogsourcecode.git
HEAD branch: master
Remote branches:
master tracked
smallcomputer tracked
Local branch configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
master pushes to master (up to date)
smallcomputer pushes to smallcomputer (up to date)

6.远程仓库的移除与重命名

重命名 将远程仓库由 pb 重命名 为 paul

1
git remote rename pb paul

移除paul

1
git remote rm paul

7.直接添加和提交代码

1
git commit -a -m 'made a change'

8.直接新建和转换分支

1
git checkout -b hotfix

9. pull 命令

1
git pull origin master

这里的 master 是指远程的 master 分支

10. push 命令

1
git push origin master

将本地的 master 分支的数据,推送到它对应的 远程分支上去 这个远程分支可能是 awsomemaster

11.git 回退版本

如果当前版本是 HEAD, 那么上一个版本就是 HEAD^,上上一个版本就是 HEAD^^ ,当然往上写100个 ^ 容易写不过来,所以写成 HEAD~100。我们要将当前版本回退到上一个版本,使用如下命令:

1
git reset --hard HEAD^

如果我们知道版本号,还可以使用直接指定版本号

1
git reset --hard s7s6d734

12.查看命令历史

使用如下命令查看命令历史

1
git reflog

结果如下

1
2
3
4
5
6
7
$ git reflog
a993996 (HEAD -> master) HEAD@{0}: reset: moving to a993996
286b286 HEAD@{1}: reset: moving to HEAD^
a993996 (HEAD -> master) HEAD@{2}: commit: sss
286b286 HEAD@{3}: commit: 我再次看看
eee6a49 HEAD@{4}: commit: 让我看看是修改了哪一个
83f7fe8 HEAD@{5}: commit (initial): 初次提交

13.比较命令

不加参数,暂存区有文件未提交(commit)时,比较工作区和暂存区的文件

当暂存区的文件已经提交时,则比较工作区与最近一次提交的版本,如下比较名为 test1 的文件。

1
git diff test1

如果同时你有一个分支叫做 test1 则以下命令

1
git diff test1

则会出现如下的歧义

1
2
3
fatal: ambiguous argument 'test1': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

这个时候需要制定版本号文件名

1
git diff test1 -- test1

上面的命令比较当前分支工作区的 test1 文件 与 test1 分支上最新版本的 test1 文件

比较工作区与缓存区的文件

1
git diff --cached 文件名

查看工作区和版本库里面最新版本的区别

1
git diff HEAD 文件名

比较工作区与指定 commit-id 的区别

1
git diff commit-id 文件名

比较两个 commit-id 之间的区别

1
git diff [<>]

14.git分支

查看分支

1
git branch 

创建分支

1
git branch <name>

切换分支

1
git checkout <name>

创建+切换分支

1
git checkout -b <name>

删除分支

1
git branch -d <name>

合并分支

1
git merge <name>

15.git的标签

打标签

1
git tag <tagname>

指定标签信息

1
git tag -a <tagname> -m 'bulabula'

查看所有的标签

1
git tag

命令git push origin 可以推送一个本地标签;

命令git push origin –tags可以推送全部未推送过的本地标签;

命令git tag -d 可以删除一个本地标签;

命令git push origin :refs/tags/可以删除一个远程标签。

作者

Bruce Liu

发布于

2019-01-14

更新于

2022-11-12

许可协议

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.