Git 常用命令总结
2016-12-12 本文已影响7人
WP啦啦啦
安装
输入`git` 或者 `git --version`命令查看 git 是否安装,Ubuntu 系统会很好的提示你有没有安装 git,如果没有安装 git, 可以通过` sudo apt-get install git` 命令进行安装。
创建仓库
仓库又叫版本库,里面存存储了每个文件的增、删、改等信息,方便用户在某一时刻都能跟踪并进行版本的还原。

git init
命令将该目录变成仓库。仓库创建好之后,我们就需要添加文件到仓库内,创建了一个名为“student.txt”的文件,内容如下所示,并将该文件放到 myGit 目录下。我们只需要两个步骤就可以添加该文件到仓库,第一步通过命令git add <file>
讲文件添加到仓库。第二步,通过git commit -m <string_description>
命令进行提交。

回退版本
提交修改后的文件
首先对"student.txt"文件进行了修改,修改后的内容如下:

运行
git status
命令查看仓库的当前状态:
我们可以看到“student.txt”文件已经被修改过,但是还没有提交,因此,我们对修改后的"student.txt"文件进行提交,提交还是分两步进行:
git add student.txt
git commit -m "append post-graduate"
接着我们再次对"student.txt"文件进行了修改,修改内容如下:

对其修改后的文件进行提交:
git add student.txt
git commit -m "append detail major"
查看历史记录
我们可以通过` git log`命令来查看历史记录:

我们看到有三次提交,最近的一次是"append detail major", 它的commit id 为: "6f6c631a...20dc"。最早的一次为"write student.txt",它的commit id为:"0c439f...a62b "。
版本的回退
`git reset`命令既可以回退版本,也可以把暂存区的修改回退到工作区。git 中用`HEAD`表示当前版本,上一个版本为`HEAD^`,上上一个版本为`HEAD^^`,依次类推。当`^`数量比较大时,我们可以通过`HEAD~50`这种形式来表示,`HEAD~50`表示当前往上的第50个版本。
下面我们来进行版本的回退,比如说回退到前一个版本,输入如下命令:
git reset --hard HEAD^
然后我们通过命令`cat student.txt`来查看当前文档的内容

当我们想恢复到最新的版本怎么办呢?我们可以通过commit id进行版本的恢复,通过命令
git reflog
来查找每个版本的commit id :

撤销修改
我们继续给"student.txt"进行修改,添加最后一句:

git add student.txt
命令进行添加,当添加完后想撤销这个修改该怎么办呢?输入git status
命令,下图所示:
git reset HEAD <file>
可以丢弃工作区的修改,输入git reset HEAD student.txt
命令:
输入命令
git checkout -- student.txt
来丢弃工作区的修改,接下来查看一下"student.txt"文档现在的内容,发现已经撤销了修改的内容。

删除文件
删除文件可以通过以下三句指令删除文件
rm <file>
git rm <file>
git commit -m <string_description>
远程仓库
添加远程库
- 关联
在 GitHub 上创建一个名为 myGit 的仓库,输入如下命令将本地仓库与 GitHub上的仓库关联
git remote add origin git@github.com:YoungForWP/myGit.git
- 推送
用git push
命令将本地内容推送到远程上
git push -u origin master
第一次推送时需要加上-u
参数,以后就不需要了,我们看看推送后 GitHub 上的结果,和本地的内容一模一样。
克隆远程库
登录 GitHub 创建一个名为"git_html"的仓库,并初始化 README ,输入命令:
git clone git@github.com: YoungForWP/git_html.git


分支
- 创建分支:
git checkout <branch_name>
- 贴换分支:
git -b <branch_name>
- 创建并切换分支:
git checkout -b <branch_name>
- 查看分支:
git branch
- 合并某分支到当前分支:
git merge <branch_name>
- 删除分支:
git branch -d <branch_name>
通常在合并分支时,Git 会用Fast forward
模式,这种模式下会丢掉分支,看不到分支的信息,如果想看到分支信息可以输入如下合并命令:
git merge --no-ff -m <string_description> <branch_name>
--no-ff
表示禁用Fast forward
模式,并在分支历史上可以看到分支合并情况。