Git的安装

  1. 在官网下载最新的安装包:点击前往
  2. 设置全局用户名和邮箱。
    1
    2
    git config --global user.name "your name"
    git config --global user.email "your email"

配置本地仓库

  1. 选择一个目录,在该目录打开Git并输入命令:git init,会生成一个.git隐藏目录,该目录所在的目录就是我们的工作目录。

  2. 通过git status可以查看当前目录的状态。

    1
    2
    On branch master
    No commits yet

    该目录如果被成功配置,则会显示上述内容,这表示目前没有任何提交。

添加和提交

  1. 在工作目录下随便创建一个文件,例如:helloworld.txt,并执行git status查看文件状态。
    未追踪状态
    这表示我们的文件处于未追踪状态,Git不会记录它的变化,而是把它当作一个新创建的文件。
  2. 通过git add helloworld.txt将文件添加到暂存区,并使用git status查看文件状态。
    添加到暂存区
  3. 通过git commit -m "提交描述"将文件提交到仓库。
    提交文件到工作目录
    此时我们使用git log可以查看文件的提交状态。

文件变更

  1. helloworld.txt的内容进行修改,并使用git status查看状态。

    修改文件查看提交状态
    重复上述提交操作,并将文件提交到工作目录。

    1
    2
    git add helloworld.txt
    git commit -m 'first modify'

    此时,我们使用git log会得到两条提交记录。

  2. 使用git show可以查看最近一次的提交状态。

    查看最近一次提交状态
    Git会详细记录我们对文件做出了哪些修改,以及行数的变化。

文件忽略列表

通过在工作目录下创建.gitignore文件,来确定文件忽略列表。如果忽略列表中的文件存在且为未追踪状态,那么Git不会对其进行任何检查。

1
2
3
4
5
6
7
8
9
10
11
# 忽略所有以.txt结尾的文件
*.txt
# 将该文件从上述忽略列表中排除
!helloworld.txt

# 指定目录,忽略目录下的所有文件
workspace/
# 忽略指定目录下的所有以.txt结尾的文件
workspace/*.txt
# 忽略指定目录下的所有以.txt结尾的文件,包括子目录
workspace/**/*.txt

回滚

如果我们想要文件回到上一个版本,可以使用git reset --hard 提交id
文件的回滚
此时我们会发现之后的日志都消失了。如果我们还想要回到之后的版本,可以使用git reflog查看之前的提交id,再次重置即可。
查看提交id并重置

分支的创建与合并

创建分支

通过git branch查看当前仓库分支。默认情况下都有一个master分支,并且我们使用的也是master分支,master分支代表正式版本的更新,而其他分支一般是开发中频繁更新的。
我们可以通过git branch 分支名称创建新的分支,对应删除分支的命令为git branch -d 分支名称
使用git checkout 分支名称可以切换到其他分支。
分支的创建和切换
切换分支后,我们在dev分支下修改文件内容并提交,然后切换回master分支,会发现不同分支下的同一个文件内容并不相同。使用git log --all --graph可以查看所有分支的修改状态。

合并分支

切换回master分支,使用git merge 分支名称即可合并分支。
合并分支
此时会将dev分支合并到master分支。

变基和优选

变基分支

合并是分支回到主干的过程,而变基是直接修改分支开始的位置,比如将dev分支变基到master分支上,那么dev会将分支起点移动到master最后一次提交位置:

1
git rebase master

变基后,dev分支相当于同步了此前master分支的全部提交。

优选

我们还可以选择将其他分支上的提交作用于当前分支。

1
git cherry-pick 提交id

这里我们在master分支上创建一个新的文件,提交此次更新,接着通过cherry-pick的方式将此次更新作用于test分支上。优选相当于同步其他分支上的某一次提交。

远程仓库

SSH配置

  1. 生成SSH密钥。

    1
    ssh-keygen -t rsa -C "邮箱"
  2. 生成成功后会在C://Users//你的用户名看到.ssh隐藏目录。

    ssh隐藏目录

  3. 复制id_rsa.pub的内容到GitHub即可。

    GitHub配置SSH密钥

  4. 配置成功后测试SSH连接。

    1
    ssh -T git@github.com

推送仓库

1
2
git remote add 名称 远程仓库地址
git push 远程仓库名称 本地分支名称[:远端分支名称]

如果本地分支名称和远端分支名称一致,那么不用指定远端分支名称。如果推送的分支在远端没有同名的,那么需要额外指定。推送前需要登陆账号。远程仓库也可以有多个分支。推送后,远程仓库中的内容已经与我们本地仓库中的内容保持一致了。
我们可以将远端和本地的分支进行绑定,绑定后就不需要指定分支名称了。

1
2
git push --set-upstream origin master:master
git push origin