Git

2020-08-02 13:12:28 浏览数 (1)

git版本控制工具

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。

Git与另一个版本控制系统有如下区别

  • Git是分布式的,SVN不是。
  • Git把内容按元数据方式存储,而SVN是按文件。
  • Git分支和SVN分支不同。
  • Git没有一个全局的版本号,而SVN有。
  • Git的内容完整性要优于SVN。

工作流程

首先要了解到Git分为几个区域,有工作区、暂存区、版本库、远程仓库。然后在后边会解释项目在各个区域移动。

单人工作比较简单,主要是重复的修改和提交,多用于个人项目。

  • 初始化仓库;
  • 现在就处于工作区,可以在项目中进行修改;
  • 然后将更改提交到暂存区;
  • 将更改从暂存区提交到本地仓库(版本库);
  • 再将代码推到远程仓库。

多人合作的话,每个人创建分支,在自己的分支上写代码,最后将分支合并。使用分支并不会影响开发主线的工作。

开发中经常使用的Git命令

1、配置Git

代码语言:javascript复制
git config

在使用Git之前。需要配置Git。主要配置的就是用户名和邮箱。然后再查看配置列表。

代码语言:javascript复制
git config --global user.name <name>
git config --global user.email <email>

git config -l

然后就可以开始使用了。

2、初始化Git仓库

代码语言:javascript复制
git init

该命令会在当前文件目录下初始化一个Git仓库并且生成一个.git目录。或者直接在github克隆一个仓库,使用如下命令。

代码语言:javascript复制
git clone <repo>

3、添加到暂存区

代码语言:javascript复制
git add <file>

将修改过的文件添加到暂存区,使用git add .git add -A将所有更改的文件添加到暂存区。

删除文件可以使用git rm命令,只能删除工作区与暂存区的文件。如果想只删除暂存区的文件git rm --cached <file>

查看工作区的状态使用git status命令,查看未添加的文件。

查看暂存区中的文件使用git ls-files命令。

4、提交到本地仓库

代码语言:javascript复制
git commit

在提交的时候需要添加提交信息git commit -m <message>,如此以来就知道每次提交做了什么更改。

在此时,已经使用过工作区、暂存区和本地仓库了。我们可以查看不同区的不同。

  • 显示工作区与暂存区的不同:git diff
  • 显示暂存区与本地仓库的不同:git diff --cached
  • 显示三者的不同:git diff HEAD
  • 仅显示改变的文件:git diff --name-only
  • 显示两次提交的差异:git diff <commit> <commit>

5、远程仓库

代码语言:javascript复制
git remote

将代码提交到远程仓库之前需要建立连接。使用以下命令对远程仓库进行操作:

  • 添加远程仓库并命名为origin:git remote add origin <git-repo>
  • 修改远程仓库git remote set-url origin <git-repo
  • 删除远程仓库git remote rm origin
  • 列出所有的远程仓库git remote -v

然后就可以推送到远程仓库了,其中origin是远程仓库,master是分支:

  • 推送到远程仓库并建立追踪关系git push -u origin master
  • 推送到远程仓库git push origin master

6、分支

分支绝对是Git中的核心概念。Git保存的不是文件的变化或差异,而是一系列不同时刻的快照。

分支创建

代码语言:javascript复制
git branch <branch>

分支的其他操作:

  • 从远程仓库拉取文件git pull origin master
  • 列出本地分支git branch
  • 列出本地分支与追踪关系git branch -vv
  • 列出远程分支git branch -r
  • 列出所有分支git branch -a
  • 删除已被合并的分支git branch -d <branch>
  • 强制删除未被合并的分支git branch -D <branch>
  • 更改分支名字git branch -m <newbranch>
  • 设置追踪分支git branch -u <upstream>
  • 切换分支git checkout <branch>
  • 建立分支并切换工作区git checkout -b <branch>
  • 切换到最近一次分支git checkout -
  • 建立无任何提交历史的分支git checkout --orphan <branch>
  • 合并develop分支到本分支git merge develop
  • 合并最近切换分支git merge -

日志和标签

  • 显示提交日志git log
  • 以图表的形式显示提交日志git log --graph --all --online --decorate
  • 列出所有标签并显示标签信息git tag -ln
  • 在某个commit上添加一个标签git tag v0.1 <commit>
  • 删除一个标签git tag -d v0.1

0 人点赞