git命令
git命令
初始化
设置用户名,邮箱
git config --global user.name "Author Name" git config --global user.email "Author Email"
查看邮箱用户名等选项
gitc onfig --list
初始化一个Git仓库,使用git init
命令。
第一步,使用命令git add .
,添加全部 ,注意,可反复多次使用,添加多个文件;
第二步,使用命令git commit -m "提交的注释"
,完成。
运行git status
命令看看结果
运行git diff
这个命令可查看我们修改了什么内容
第一步:git add .
第二步:git commit -m "写改动的注释"
版本回退
通过git log
来查看版本(加上--pretty=oneline
参数查看关键信息):git
中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
。
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。
穿梭前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本。
工作区和暂存区
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
撤销修改
在修改了文件之后,且还没有add
之前,可执行以下命令丢弃工作区的修改。
$ git checkout –- readme.txt
git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout
命令
如果你想要修改,已经git add
到暂存区,但还没有commit
的内容。
我们可以用命令git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。
删除文件
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm
命令删了:
$ rm test.txt
这个时候,git
知道你删除了文件,因此,工作区和版本库就不一致了,git status
命令会立刻告诉你哪些文件被删除了:
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
:
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
分支管理
git查看当前分支所属
git branch -vv
创建与合并分支
首先创建dev
分支,然后切换到dev
分支
$ git checkout –b dev Switched to a new branch 'dev'
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev $ git checkout dev Switched to branch 'dev'
git branch –a
查看当前仓库的所有分支;git branch –r
查看远程仓库的所有分支
dev
分支的工作成果合并到master
分支上:
$ git merge dev
小结
- 查看分支:
git branch
- 创建分支:
git branch
- 切换分支:
git checkout
- 创建+切换分支:
git checkout -b
- 合并某分支到当前分支:
git merge
- 删除分支:
git branch -d
- 提交:
git branch origin 远程分支名称
自定义Git
配置命令别名
本节是教你如何偷懒的。
如果敲git st
就表示git status
那就简单多了,当然这种偷懒的办法我们是极力赞成的。
我们只需要敲一行命令,告诉git
,以后st
就表示status
:
$ git config --global alias.st status
当然还有别的命令可以简写,很多人都用co
表示checkout
,ci
表示commit
,br
表示branch
其它技巧
之前上传过的文件夹想要忽略怎么办?这行这个,然后正常提交okgit rm -r --cached .