GitHub系列——(2)Git入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shaohe18362202126/article/details/82936203

一、概述

1、Git介绍

  • Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

2、版本控制

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

本地版本控制

复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。

集中化的版本控制系统

集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS),诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 

分布式版本控制系统

分布式版本控制系统(Distributed Version Control System,简称 DVCS),例如 Git、Mercurial、Bazaar 以及 Darcs 。客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。 你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的。

二、下载安装

1、windows

下载地址:https://gitforwindows.org/

下载之后默认安装,傻瓜式下一步。

扫描二维码关注公众号,回复: 3481573 查看本文章

检查是否安装成功

开始菜单或者桌面右键菜单,找到"Git Bash"选项。点击打开,如图所示:

              

2、Linux 

首先看看系统中是否有Git:

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

没有Git则需要安装

Debian/Ubuntu

输入命令:

sudo apt-get install git

或者

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev

$ apt-get install git

$ git --version
git version 1.8.1.2

Centos/RedHat

输入命令:

  $ sudo yum install git

或者

$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

$ yum -y install git-core

$ git --version
git version 1.7.1

3、Git配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

git的配置信息存放位置:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

配置用户信息

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

查看配置信息

$ git config --list
http.postbuffer=2M
user.name=runoob
[email protected]

三、常用命令

1、git init

在当前目录下初始化一个仓库。将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。

2、git status

查看当前仓库的状态。

状态简览:

使用 git status -s 命令或 git status --short 命令,获取更为紧凑的格式输出

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。 

M 有两个可以出现的位置,出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区。

3、git add 文件名

使git跟踪一个文件,即把内容放到下一个提交的暂存区。例如在仓库中修改、删除、新增等变更操作,需要将对应的文件add到暂存区,下次提交的时候将被提交到仓库中。

4、git commit -m "message"

提交。message表示提交时需要带上提交的备注。

如果没有-m "message",会启动文本编辑器以便输入本次提交的说明。

跳过使用暂存区域:git commit -a -m "message"

5、git log

可以查看所有产生的 commit 记录

 -p,用来显示每次提交的内容差异

-2 来仅显示最近两次提交

6、git branch 

git init 初始化git仓库之后会默认生成一个主分支 master 。

(1)执行 git branch查看当前分支

(2)新建分支a: git branch a 。这时候分支 a 跟分支 master 是一模一样的内容

此时所在仍是主分支,需要切换到分支a上:git checkout a

*新建和切换一部到位:git checkout -b a

(3)合并分支:git merge。第一步是切换到 master 分支,如果你已经在了就不用切换了,第二步执行 git merge a ,意思就是把a分支的代码合并过来

(4)删除分支:git branch -d a 。删除分支a

强制删除a分支:git branch -D a 。有些时候可能会删除失败,比如如果a分支的代码还没有合并到master,你执行 git branch -d a 是删除不了的,它会智能的提示你a分支还有未合并的代码

详细的Git学习手册

猜你喜欢

转载自blog.csdn.net/shaohe18362202126/article/details/82936203