Git安装及操作指令

GIT

Git 是一个开源的分布式版本控制系统。

控制系统:

目前相对主流的是Git 与 SVN。

Git 与 SVN 区别点:

  • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

  • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

  • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

  • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

  • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

git记录的是每次变化的内容而不是每个时刻的文件,因此,git的版本控制,只能监控文本文件的变化。

安装配置

Git - Downloads (git-scm.com)下载相应版本的git安装文件。

CNPM Binaries Mirror

git本地所有的配置项可以使用如下命令查看

git config --list

要在本地设置当前用户

git config --global user.name "XXX"
git config --global user.email "邮箱地址"

user.name和user.email设置,将来连接服务器时,服务器记录我们这里设置的内容。

所以,这里设置的内容仅仅作为服务器记录的内容。

创建git仓库

对于一个不是git仓库的目录,打开图形界面会显示如下内容

使用gui或命令行创建

git init

在目录中会自动产生一个隐藏文件夹 .git。

记录变化

git(所有的版本控制软件都只能详细记录文本文件的变化,对于二进制文件只能记录存在与否)。

git基本节点不是文件,所以,在一次改动中,可以记录多个文件的变化。

要记录改动,首先要添加需要记录的文件:

git add xxx

可以添加多个文件,添加之后,使用commit命令记录改变:

git commit -m '改动说明'

git默认要求每次改动必须有说明,没有说明会禁止记录。

查看库当前状态

git status

可以查看库当前状态。

如果有改变且未提交的文件就会被列出,此时们可以使用diff命令查看变化

git diff xxx

查看提交历史

在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

git log

版本回退

HEAD`指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

commit_id 可以不写全,git会自动查找。

git reset --hard commit_id

HEAD~1回退一个版本

git reset --hard HEAD~1

我们对版本的每次操作都会被记录,可以使用get reflog查看:

git reflog

远程仓库

远端仓库账号建立好之后,我们需要让远端仓库的账号和我们本地的账号关联起来。

我们使用ssh的方式来进行关联。

要连接远程仓库,需要

ssh key

ssh-keygen -t rsa -C "youremail@example.com"

成功后会生成C:\Users\用户\.ssh这个目录,里面有id_rsaid_rsa.pub两个文件。

id_rsa是私钥,id_rsa.pub是公钥。

在远程仓库的ssh用户安全设置里添加一个公钥。

关联远程库

在服务端创建一个仓库,得到仓库的地址,使用如下命令与本地的仓库结合:

在本地仓库的bash界面:

git remote add <远端连接的名称> git@gitee.com:lordleech/demo.git

origin是当前远程连接的名称。一个本地仓库可以同时关联多个远程仓库(名字不能一样)。

如果关联的远端地址出错了,可以查看和移除后重新添加

git remote -v
origin  git@gitee.com:lordleech/demo.git (fetch)
origin  git@gitee.com:lordleech/demo.git (push)
​
git remote rm origin

SSH警告

因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

本地推送

git push origin master

本地推送到远程 origin 的master分支。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

拉取

git pull origin master

克隆

对于别人的远程仓库,想要下载,可以使用git来下载:

git clone git@gitee.com:harris992/JQuery-TreeTable-Plugin.git

表示在当前目录下,创建JQuery-TreeTable-Plugin目录,下载所有文件。

分支

可以使用如下命令,创建并切换到dev分支:

git checkout -b dev
Switched to a new branch 'dev'

git checkout(切糕)命令加上-b参数表示创建并切换,相当于以下两条命令:

git branch dev    //创建dev分支
git checkout dev   // 切换到dev分支

然后,用git branch命令查看当前分支:

git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。

合并分支 

表示将dev分支合并到当前分支中。

git merge dev

合并后可以删除dev分支

git branch -d dev

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

协作开发

本地服务器或者gitee服务器但要求多人在一个项目组中:

在这种场景下,各个小组成员要求每个成员都建立自己的分支,项目完成后。每个人按顺序将服务器主分支拉去到本地,本地的私有分支合并到本地的主分支,本地主分支推送到服务器。这种情况适用于小组成员之间的工作没有交叉。

gitee服务器且人员不确定,工作也有可能有交叉:

参与项目的成员:

1、将主仓库 fork(在自己的账号中建立了一个别人的仓库副本) 一份到自己的仓库。

2、将本地仓库与fork出来的远程仓库关联,有的改动后推送到远程fork仓库。

3、在fork仓库中新建一个拉取请求发送到主仓库。

4、主仓库的管理员会看到别人的拉取请求,及详细内容,可以拒绝与同意,一旦同意,就会合并。

克隆到本地:

git clone git@gitee.com:lordleech/zTree_v3.git

再次确认克隆后的仓库是否有远端的连接:

git remote -v
​
origin  git@gitee.com:lordleech/zTree_v3.git (fetch)
origin  git@gitee.com:lordleech/zTree_v3.git (push)

如果打印内容为空,则需要我们手动添加远端链接

git remote add origin git@gitee.com:lordleech/zTree_v3.git

完成后再次执行git remote -v 查看,确认远端链接已添加。

2、修改文件。

修改文件后查看库状态:

git status
On branch master
Your branch is up to date with 'origin/master'.
​
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README.md
​
no changes added to commit (use "git add" and/or "git commit -a")

记录并提交这个改变:

git add README.md
git commit -m '提交时的注释'

将这个改变提交到远端库

git push origin master

成功后,在网页中的当前库(自己的)就可以看到变化。

3、发起拉取请求

 

点击图片右下角的 +Pull Request。

确认源分支和目标分支是否正确。

填写请求的标题和内容,然后创建 Pull Request。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值