mac环境 git分布式存储仓库与gitHub链接使用详解

本文详细介绍了在Mac环境下安装Git,以及Git的基本使用,包括创建代码仓库、分支管理和与GitHub的链接。文章强调了Git作为分布式版本控制系统的重要性,与GitHub的区别,并提供了从创建项目到上传代码的完整步骤。
摘要由CSDN通过智能技术生成

目录

1.git是什么

2.git mac环境安装

(1)安装git

(2)验证安装

3.git简单使用

(1)根据路径创建git代码仓库

(2)在workspace路径下写代码

(3)将代码文件提交到git代码仓库

(4)从.git代码仓库回滚版本代码

4.git的工作区、暂存区和代码仓库

(1)查看当前工作状态

5.不同存储区间的删除操作

(1)工作区删除操作

(2)暂存区删除操作

(3)代码仓库的删除操作

(4)撤回操作

5.分支branch

(1)分支基本操作

(2)分支基本特性

(3)分支合并

(4)stash分支

6.与github链接并上传代码

6.1 创建项目

6.2 添加ssh账户,即创建凭证

6.3 回终端git创建公私钥

6.4 去gitHub完成凭证最终创建

6.5 使用本地git工具与gitHub项目容器交互



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     显示工作区状态

扩展
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值