git入门(bash命令详细)

git简介

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:本地仓库和远程仓库。

本地仓库:是在开发人员自己电脑上的Git仓库
远程仓库:是在远程服务器上的Git仓库

Clone:克隆,就是将远程仓库复制到本地
Push:推送,就是将本地仓库代码上传到远程仓库
Pull:拉取,就是将远程仓库代码下载到本地仓库

git入门(bash命令详细)_第1张图片

git的工作流程

工作流程如下:
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
git入门(bash命令详细)_第2张图片

git的下载和安装

  • git国内镜像下载地址:
    https://npm.taobao.org/mirrors/git-for-windows/

双击下载的安装文件来安装Git。
安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功。
Git GUI:Git提供的图形界面工具
Git Bash:Git提供的命令行工具
git入门(bash命令详细)_第3张图片

Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快

git的常见命令和概念

1.环境配置

设置用户名称和email地址

设置用户信息
git config --global user.name “codeduck”
git config --global user.email “[email protected]
查看配置信息
git config --list
git config user.name
通过上面的命令设置的信息会保存在~/.gitconfig文件中

2.获取Git仓库

获取Git仓库通常有两种方式:

  • 在本地初始化一个Git仓库
  • 从远程仓库克隆

创建一个本地git仓库,执行步骤如下:

  1. 在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库
  2. 进入这个目录中,点击右键打开Git bash窗口
  3. 执行命令git init
    git入门(bash命令详细)_第4张图片
    如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功

也可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令形式为:git clone 远程Git仓库地址

3.工作目录、暂存区以及版本库概念

版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
git入门(bash命令详细)_第5张图片

4.Git工作目录下文件的两种状态

Git工作目录下的文件存在两种状态:
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)

  • Unmodified 未修改状态
  • Modified 已修改状态
  • Staged 已暂存状态

这些文件的状态会随着我们执行Git的命令发生变化

git status 查看文件状态
也可以使用git status –s 使输出信息更加简洁

5.本地仓库操作

  • git add 将未跟踪的文件加入暂存区
  • git reset 将暂存区的文件取消暂存
  • git commit 将暂存区的文件修改提交到本地仓库
  • git rm 删除文件

6.远程仓库的使用

  • git remote add 添加一个新的远程 Git 仓库
  • 克隆仓库的命令格式是 git clone [url]
  • 移除一个远程仓库 ,可以使用 git remote rm
  • git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge
  • git pull 是从远程仓库获取最新版本并merge到本地仓库
    注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数–allow-unrelated-histories
  • 推送到远程仓库
    git push [remote-name] [branch-name]

7.分支

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。Git 的master分支并不是一个特殊分支。 它跟其它分支没有区别。 之所以几乎每一个仓库都有 master 分支,是因为git init 命令默认创建它,并且大多数人都懒得去改动它。

关于分支的相关命令,具体如下:

  • 查看分支
    列出所有本地分支
    $ git branch
    列出所有远程分支
    $ git branch -r
    列出所有本地分支和远程分支
    $ git branch -a

  • 创建分支
    git branch b1

  • 切换分支
    git checkout b1

  • 推送至远程仓库分支
    git push origin b1

  • 合并分支
    git merge b1
    有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决

  • 删除分支
    git branch –d b1 删除
    如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D
    注意:删除远程仓库分支 git push origin -d b1

8.标签

像其他版本控制系统(VCS)一样,Git 可以给历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 、v1.2等)。标签指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。

主要操作如下:

  • 列出已有的标签
    列出所有tag
    git tag
    查看tag信息
    git show [tag]

  • 创建新标签
    git tag [tagName]

  • 将标签推送至远程仓库
    提交指定tag
    git push [remote] [tag]

  • 检出标签
    新建一个分支,指向某个tag
    git checkout -b [branch] [tag]

  • 删除标签
    删除本地tag
    git tag -d [tag]
    删除远程tag
    git push origin :refs/tags/[tag]

9.查看日志记录

git log 查看日志记录( 按q退出日志信息 )
git入门(bash命令详细)_第6张图片

总结:

git与svn的区别: svn是集中式的版本控制工具,git是分布式版本控制工具
查看文件状态命令:git status
将文件加入暂存区命令: git add
将文件取消暂存命令: git reset
将暂存区文件提交的本地仓库的命令: git commit
删除文件的命令: git rm 删除文件系统系统

添加远程仓库命令:git remote add
远程仓库克隆命令:git clone [url]
远程仓库抓取命令:git fetch
远程仓库拉取命令:git pull
推送远程仓库命令:git push [remote-name] [branch-name]
查看分支命令:git branch
推送至远程仓库分支命令:git push origin
合并分支命令:git merge
删除分支:git branch -d

你可能感兴趣的:(git入门(bash命令详细))