目录
1.git是什么
Git(读音为/gɪt/。)是一个开源的分布式存储的版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。--摘自百度百科
其实说白了git就是一个人们在工作的时候,让多个人能够一起进行软件开发的代码管理工具。这个工具能够自动将多个人写的代码合并到一起并且每个人都能够看到大家工作的进度。在实际开发工作过程中几乎没有什么人可以不依赖集体开发而工作,那么多人协同合作就势在必行,而这就是使用git的一个原因。
需要纠正一个不正确的认知就是:【git】和【gitHub】完全不是同一个玩意儿!git是一个代码管理工具,而gitHub是一个网站,git能够把代码内容上传到gitHub上,gitHub上的内容能够被全球所有人都看到。
现在市面上存在有很多代码版本管理工具例如比较流行的svn工具,但是svn和git存在明显的差别就是svn是一个集中式存储的版本控制系统,而git则是分布式存储。那么什么叫集中式什么叫分布式呢?简单说就是代码都存在一台电脑上面就是集中式存储,如果这台电脑崩溃那么所有的存储数据就都凉凉。而分布式存储就是把代码存在多台电脑上面,这样即使某一台电脑崩溃,其他电脑上面仍然保存有数据。这也是为什么git在广域环境更受欢迎的原因。(ps:svn在小公司或团队当中比较常见,一般都是一个leader对应两三个员工这种)
另外还要再说一下git的创建者Linus就是Linux开源系统的创始人。git的由来还是一段颇有传奇性质的故事,感兴趣的可以自行搜一下。这是一场极客和集团之间的较量,嗯,看git已经出现你就应该懂结果的。
2.git mac环境安装
本安装过程是建立在已经配置好homebrew工具的环境前提下,如果还没有配置homebrew工具那么请先安装后再来继续查看。如果不知道怎么安装homebrew可以查看https://blog.csdn.net/u013792921/article/details/84779014来配置homebrew。
(1)安装git
mac上git的安装操作十分简单,只需要通过homebrew的一个下载指令【~/$ brew install git】即可完成。
***deMacBook-Pro:~ ***$ brew install git
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
php@7.2
==> Updated Formulae
abyss minio-mc
ansible mutt
apache-arrow-glib nettle
arangodb nng
arcade-learning-environment nss
astrometry-net numpy
aubio nwchem
awscli ompl
azure-cli openblas
babel opencv
beagle opencv@2
binaryen pandoc-crossref
bzt percona-server
cargo-completion pgroonga
cglm pgrouting
circleci pgweb
citus php
composer php@5.6
conan php@7.1
dbus phpunit
dita-ot picard-tools
django-completion pig
easyengine postgis
elasticsearch postgresql
embulk ppsspp
eprover pulumi
exploitdb pyenv
flume qalculate-gtk
fn qt
fswatch radare2
fwup rke
fx ruby-build
gcc@7 rust
gdb scala
git-lfs scipy
gnuradio shellcheck
gphoto2 shibboleth-sp
grafana smimesign
grails sonobuoy
graph-tool spotbugs
haskell-stack stone-soup
imagemagick stunnel
jansson syncthing
jena taskell
jenkins tbb
jenkins-lts temporal_tables
kibana terraform_landscape
knot-resolver tile38
kubernetes-cli tomcat-native
kubernetes-helm tomcat@7
kustomize tomcat@8
libbtbb traefik
libgda twoping
libgphoto2 up
libpqxx urh
libqalculate v8
libswiften webpack
logstash winetricks
macvim wxmaxima
mercurial xml-security-c
minio xml-tooling-c
==> Deleted Formulae
php@7.0 pldebugger
==> Installing dependencies for git: pcre2
==> Installing git dependency: pcre2
==> Downloading https://homebrew.bintray.com/bottles/pcre2-10.32.high_sierra.bot
######################################################################## 100.0%
==> Pouring pcre2-10.32.high_sierra.bottle.tar.gz
? /usr/local/Cellar/pcre2/10.32: 224 files, 5.4MB
==> Installing git
==> Downloading https://homebrew.bintray.com/bottles/git-2.19.2.high_sierra.bott
######################################################################## 100.0%
==> Pouring git-2.19.2.high_sierra.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions and functions have been installed to:
/usr/local/share/zsh/site-functions
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/git
==> Summary
? /usr/local/Cellar/git/2.19.2: 1,520 files, 40.2MB
==> Caveats
==> git
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions and functions have been installed to:
/usr/local/share/zsh/site-functions
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/git
(2)验证安装
可以通过如下两个命令来验证是否安装成功
- 输出git版本 【~/$ git --version】
- 输出git命令提示【~/$ git】
***deMacBook-Pro:~ ***$ git --version
git version 2.19.2
***deMacBook-Pro:~ ***$ git
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
这些是各种场合常见的 Git 命令:
开始一个工作区(参见:git help tutorial)
clone 克隆一个仓库到一个新目录
init 创建一个空的 Git 仓库或重新初始化一个已存在的仓库
在当前变更上工作(参见:git help everyday)
add 添加文件内容至索引
mv 移动或重命名一个文件、目录或符号链接
reset 重置当前 HEAD 到指定状态
rm 从工作区和索引中删除文件
检查历史和状态(参见:git help revisions)
bisect 通过二分查找定位引入 bug 的提交
grep 输出和模式匹配的行
log 显示提交日志
show 显示各种类型的对象
status 显示工作区状态
扩展