Git基础知识

1.初始化一个Git仓库,使用git init命令。

2.添加文件到Git仓库,分两步:

  • ​ 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
  • ​ 使用命令git commit -m <message>,完成。

3.使用git status命令,查看工作区状态。git status只显示有文件被修改过,用git diff可以查看修改内容。

![](./Git基础知识/git status和git diff.png)

4.git log命令显示从最近到最远的提交日志,可以加上**--pretty=oneline**参数优化显示效果。

5.在Git中,用**HEAD表示当前版本,上一个版本就是HEAD^**,上上一个版本就是HEAD^^,往上100个版本写成HEAD~100

使用git reset命令回退版本

1
2
3
4
5
6
//回退到上一个版本
git reset --hard HEAD^
//查看当前文件内容
cat <filename>
//回退到指定版本
git reset --hard <commit-id>

6.git reflog用来记录每一次命令。

7.撤销修改

git checkout –

​ 命令`git checkout – 意思就是,把文件在工作区的修改全部撤销,这里有两种情况:

​ 一种是自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

​ 一种是已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

​ 总之,就是让这个文件回到最近一次git commitgit add时的状态。

​ 如果文件已经通过git add添加到了暂存区但并没有提交。可以通过命令**git reset HEAD <file>把暂存区的修改撤销掉(unstage),重新放回工作区。然后通过git checkout – **,把文件在工作区的修改全部撤销。

​ 如果文件已经通过git commit提交到了版本库,在没有提交到远程库的前提下,只能进行版本回退。

8.添加远程库

1
2
//把上面的michaelliao替换成你自己的GitHub账户名
$ git remote add origin git@github.com:michaelliao/learngit.git

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

1
$ git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

只要本地作了提交,就可以通过命令:

1
$ git push origin master

把本地master分支的最新修改推送至GitHub。

9.删除远程库

1
2
//删除
git remote rm <name>
1
2
//查看远程库信息
git remote -v

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

10.从远程库克隆

1
$ git clone git@github.com:michaelliao/gitskills.git

11.分支管理

  • 查看分支:git branch
  • 创建分支:git branch <name>
  • 切换分支:git checkout <name>或者git switch <name>
  • 创建+切换分支:git checkout -b <name>或者git switch -c <name>
  • 合并某分支到当前分支:git merge <name>
  • 删除分支:git branch -d <name>

12.解决冲突

产生冲突的原因是,两个分支同时更改了同样的位置。当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

git log --graph命令可以看到分支合并图


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!