Git基本使用

Git

Git作为一个开源的分布式版本控制系统,与CVSSVN等集中式版本控制系统不同的是,它的版本库不是集中存在中央服务器的,而是采用分布式管理让每个人电脑上都有一个完整的版本库,***Git***及其强大的分支管理能让多方修改后的版本库进行合并,显然安全性要比集中式版本控制系统高。

Git的安装配置(Win10)

在Win10上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。
安装后通过以下命令查看,如果显示版本号那就是安装成功了。

$ git --version

配置文件为~/.gitconfig,执行任何Git配置命令后文件将自动创建。
第一个要配置的文件为个人用户名称和电子邮箱地址。每次Git提交时都会引用这两条信息说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

$ git config --global user.name "yourname"
$ git config --gloabl user.email "youremail@example.com"

Git的基本使用

创建仓库

任意位置创建空目录后执行以下命令,就会创建一个版本库。Git 仓库会生成一个.git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变(不像 SVN 会在每个子目录生成.svn目录,Git 只在仓库的根目录生成.git目录)。

$ git init

拷贝仓库

要克隆一个仓库,首先必须要知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生协议git协议速度最快。

$ git clone [url]

添加文件

我们把文件添加到Git版本库的时候,是分两步执行的:

  1. 使用git add把文件修改添加到暂存区
  2. git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
$ git add                          //添加指定的文件到暂存区
$ git add .                        //添加所有未被忽略的文件到暂存区
$ git commit -m '描述内容'
$ git commit --amend               //修改最新一次提交事件

每次对Git进行操作后,可以通过git status命令查看结果。

$ git status              
$ git status -s          //获得简短的结果输出

删除文件

要从Git版本库中移除某个文件,就必须要从已跟踪文件清单中移除,然后git commit

$ git rm <file>          //此时本地文件也也一并被删除

如果是删除之前提交到版本库的文件,但仍希望保存在当前工作目录中,可用以下命令。

$ git rm --cached <file>

文件重命名

可用以下命令移动或重命名一个文件、目录、软链接。

$ git mv

查看提交历史

$ git log
$ git log -p                   //以diff形式显示较详细的变动内容
$ git log --online             //简短显示
$ git log --name-only          //显示文件变化
$ git log --name-status        //显示文件具体变化(修改/添加)

撤销修改

当你改乱了工作区中某个文件的内容,想把文件在工作区的修改全部撤销,这里有两种情况:

  • 文件自修改后还没有被放在暂存区,撤销修改就回到和版本库的状态;
  • 已经添加到暂存区且作了修改,则回到添加到暂存区后的状态。
    总之,就是让这个文件回到最近一次git commitgit add时的状态。
$ git checkout -- <file>

当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步:

  • 第一步用命令git reset HEAD <file>,就回到了上一场景;
  • 第二步用git checkout -- file命令即可。
$ git reset HEAD <file>

Git的分支

Git通过HEAD指针来快速指向并管理分支,从而在开发过程中实现各个模块间互不干扰,提高了开发效率。

分支管理

以下是分支的基本创建、删除、合并、查看命令:

$ git branch                  //查看分支
$ git branch                  //创建分支
$ git checkout                //切换分支
$ git checkout -b             //创建并切换分支
$ git merge                   //合并分支
$ git branch -d               //删除分支
$ git branch -D               //强制删除分支(慎用)
$ git branch --merged         //查看已合并的分支
$ git branch --no-merged      //查看未合并的分支

临时存储区域

在开发过程中,可能会出现在一个分支中进度尚未完成而文件未提交到版本库,却临时要到另一个分支修改的情况。这个时候可用git stash命令临时保存当前分支。

$ git stash                    //保存当前分支                      
$ git stash apply              //恢复分支
$ git stash drop stash@{index}           //删除临时存储区域
$ git stash pop                //恢复并删除分支
$ git stash list               //查看临时存储区域列表

Git标签管理

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

创建标签

$ git tag <name>                        //创建一个标签
$ git tag -a <name>                     //创建一个带注解的标签
$ git tag -a <name> -m "描述说明"        //创建带有指定信息的标签
$ git tag                               //查看所有标签

操作标签

$ git push origin <name>                //推送一个本地标签
$ git push origin --tags                //推送全部未推送过的本地标签
$ git tag -d <name>                     //删除一个本地标签
$ git push origin :refs/tags/<name>     //删除一个远程标签

Git远程仓库

由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以需要设置SSH Key

  • 创建SSH key,在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开GIt Bash),创建SSH key:
$ ssh-keygen -t rsa -C "youemail@example.com"
  • 登陆Github,打开"Settings",在"SSH and GPG Keys"页面下Add SSH Key,在文本框里粘贴id_rsa.pub的内容。

本地关联远程

当你在本地建立Git仓库时,可以在Github上建立一个仓库,并且让这两个仓库进行远程同步。

$ git remote add origin
$ git remote -v           //查看当前关联情况

注:origin为远程仓库默认名,后面跟的是在Githu上新建立的仓库的SSH地址。如果是从Github上clone,上述步骤可跳过。

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

$ git push -u origin master
$ git push origin master
$ git pull origin <分支名>:<分支名>            //拉取远程仓库分支到本地分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值