git的安装与基础使用

1.git简介

  • Git是一个免费的开源分布式版本控制系统,可以快速高效地处理从小型到大型的项目。Git很容易学习,占用的空间很小,但是性能非常好。它超越了像Subversion、CVS、Perforce和ClearCase这样的配置管理工具,具有像廉价的本地分支、方便的准备区域和多个工作流这样的特性。

2.git的优势

官方文档

3.git的安装

git-windows下载地址

安装的过程中一路默认即可

安装完成后在开始菜单找到

打开出现如下界面表示安装成功
在这里插入图片描述

  • 因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识

  • 所以进行如下设置

  • 添加自己的用户名和邮箱

  • git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱

  • 为了能拉取上传本地仓库里的文件到远程仓库,所以还需要配置ssh免密

  • 输入ssh-keygen 连续按三次enter

  • 会提示你的公钥保存在本地的某个文件下

  • 查看这个文件里的公钥,将其复制

  • 打开自己的github–settings

  • 点击SSH and GPG keys–New SSH key

  • 将复制的公钥粘贴即可

  • 复制的时候使用 clip < C:/Users/a2281/.ssh/id_rsa.pub

  • 这样githut的安装配置就完成了

4.git远程仓库的拉取

  • 首先需要了解git是需要在本地建立本地仓库,然后与远程仓库之间建立连接,才可以拉取,上传文件
  • Git Bash的命令操作与linux一样
  • 本地仓库的创建在这里插入图片描述
  • 初始化本地仓库
  • git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件
    在这里插入图片描述
  • 然后在github上创建一个远程仓库并复制其地址
  • git remote add origin 远程仓库的地址
    在这里插入图片描述

5.git的基本使用

  • git pull

git pull <远程主机名> <远程分支名>:<本地分支名>
#将远程主机origin的master分支的更新拉取到本地并与本地master分支合并
git pull origin master:master
#本地分支名可以省略,表示与当前分支合并
git pull origin master
git pull相当于git fetch+git merge

  • git push

git push <远程主机名> <本地分支名>:<远程分支名>
#将本地master分支推送到远程主机origin的master分支
git push origin master:master
#远程分支名可以省略,表示将本地的master分支推送到远程主机origin的master分支,如果远程主机的master分支不存在,将会自动创建
git push origin master
#如果本地分支名省略,表示删除相应的远程分支
git push origin :master
等同于git push origin --delete master

  • git add

git add . #将本地仓库的所有文件放入缓存区
git add < file name> #将本地仓库的某个文件放入缓存区
git add < file name> < file name> #将多个文件放入缓存区 中间空格分隔
git add < dir name> #将某个目录放入缓存区

  • git diff

git diff < file> # 比较当前文件和暂存区文件差异
git diff < id1>< id2> # 比较两次提交之间的差异
git diff < branch1> < branch2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息

  • git commit

$ git add .
$ # 或者~
$ git add newfile.txt
$ git commit -m “the commit message” #
$ git commit -a # 会先把所有已经track的文件的改动git add进来,然后提交(有点像svn的一次提交,不用先暂存)。对于没有track的文件,还是需要执行git add < file> 命令。
$ git commit --amend # 增补提交,会使用与当前提交节点相同的父节点进行一次新的提交,旧的提交将会被取消

  • git status (用于显示工作目录和暂存区的状态)

git status相对来说是一个简单的命令,它简单的展示状态信息。输出的内容分为3个分类/组
#On branch master
#Changes to be committed: (已经在stage区, 等待添加到HEAD中的文件)
#(use “git reset HEAD < file>…” to unstage)

#modified: hello.py

#Changes not staged for commit: (有修改, 但是没有被添加到stage区的文件)
#(use “git add < file>…” to update what will be committed)
#(use “git checkout – < file>…” to discard changes in working directory)

#modified: main.py

#Untracked files:(没有tracked过的文件, 即从没有add过的文件)
#(use “git add < file>…” to include in what will be committed)

#hello.pyc

  • git reflog (查看操作日志对应的版本号)
  • git reset (用于将当前HEAD复位到指定状态。一般用于撤消之前的一些操作(如:git add,git commit等)

(相当于取消最近一次的add操作)在git的一般使用中,如果发现错误的将不想暂存的文件被git add进入索引之后,想回退取消,则可以使用命令:git reset HEAD < file>
(相当于取消最近一次commit操作)当提交了之后,又发现代码没有提交完整,或者想重新编辑一下提交的信息,可执行git reset --soft HEAD^
git reset --hard 版本号(回退到某一步commit操作)

  • git checkout

git checkout - - < filename>(撤销对某个文件的上一步编辑操作)
比如 echo “new insert” >> b.txt
git checkout - - b.txt (就会取消上一步的编辑操作)
命令git checkout - - 中的 - - 很重要,如果没有 - - 的话,那么命令变成创建分支了

  • git branch

#查看当前分支
git branch
#创建分支
git branch 分支名
#切换分支
git checkout 分支名
#创建并切换分支
git checkout -b 分支名

  • git merge

将分支dev合并到当前分支中,但不要自动进行新的提交
git merge --no-commit dev
将分支dev合并到当前分支,并自动提交
git merge dev

  • git rm(用于从工作区和索引中删除文件)

使用 git rm 来删除文件,同时还会将这个删除操作记录下来;而使用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除
git rm 删除过的文件,执行 git commit -m “commit message or mark” 提交时,会自动将删除该文件的操作提交上去

6.理解工作区,版本库,暂存区的区别

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。
暂存区(stage):版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
我们前面说过使用Git提交文件到版本库有两步:
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值