美文网首页
git简明教程

git简明教程

作者: mqstack | 来源:发表于2016-08-12 01:38 被阅读46次

git是目前很强大且应用最广泛的版本控制系统。本文对git中最常用的操作命令做了一些总结。

配置ssh

使用http方式访问远程仓库时,pull、push这些操作都需要输入用户名和密码,很繁琐,使用SSH 公钥来进行授权会很方便。

在git配置SSH步骤如下:

生成ssh key

在terminal中输入以下:

ssh-keygen -t rsa -C "email@address.com"

会提示你输入密码,这个密码用来设置访问key的密码,可以为空。
之后在~.ssh这个目录会生成id_rsa和is_rsa.pub两个文件;

添加公钥到你的帐户,以github为例:

首先打开is_rsa.pub,拷贝所有信息;拷贝的时候最好使用cat,然后cmd + c或者pbcopy命令。用文本编辑器打开可能会产生多余的字符,导致校验错误。

登陆github帐户,点击头像进入profile setting -> 点击 SSH and GPG Keys -> 点击 New SSH key ,填写title和key。

测试你的ssh key是否正常使用:

ssh -T name@github.com

配置git

初始化git目录

git init

在你需要初始化的目录下输入init命令,即可生成.git目录,目录中有HEAD, config, description三个文件和branches, hooks, info, objects, refs五个文件夹。一个仓库便初始化完成了。

克隆已有的仓库

git clone

当你在github或者gitlab等平台手动创建仓库后,系统会再服务器上自动初始化完成仓库。之后调用clone命令就可以将远程的仓库克隆一份在本地。我们常说git是分布式版本控制,其分布式体现在去中心化。虽然日常使用中都有一个中心仓库,但每一个克隆下来的仓库都是一个完整的镜像,而每个仓库的地位都是平等的。

设置远程仓库地址

git remote set-url origin git@github.com:someaccount/someproject.git

如果本地init的仓库需要推送到新的远程仓库,或者要改变当前仓库的远程url,使用上述命令。

查看当前的远程地址:
git remote -v

config设置

git config --system   配置全局属性           
git config --global   配置当前用户属性      
git config --local    配置当前版本库,缺省值   
git config -l 查看所有属性
git config user.name <username>
git config user.email  <email>
git config core.editor  vim
git config core.color   auto

初始化完成仓库以后,我们常用的就是设置下自己的名字和邮箱等。使用git config -l 查看所有的属性,也可以直接对某个属性设置值。

git的使用

分支操作

git branch 将本地的分支打印出来
git branch -r 打印远程所有分支
git branch -a 将本地和远程所有分支打印出来
git branch -D branchName 删除branchName分支
git checkout branchName 切换到branchName分支
git checkout -b branchName 在当前分支基础上新建一个branchName分支

最常见的操作就是切换分支了,上述命令可以方便地切换或者新建分支。

提交操作

git status 查看当前状态
git add . 把工作空间中所有修改(包括新建和删除)的文件添加到索引库中
git commit 把索引中所有的修改提交到本地
git commit --amend 以追加形式提交
git fetch 将远程仓库拉取到本地镜像中
git pull  将远程仓库拉取到本地镜像并且合并到本地分支中 git pull = git fetch  + git merge
git pull --rebase 以rebase方式拉去仓库
git push origin branchName 将当前分支推送到远程仓库中

git的提交分为几个阶段:

  1. 加入索引:使用git add 命令将修改的文件加入到git的索引中,即受到版本控制了。
  2. 将索引内容添加到仓库中:使用git commit命令将索引中的内容添加到本地仓库,这条命令会产生一次提交记录,并且生成commit id。这条记录可以用来追踪历史的改动记录。
  3. 将本地仓库内容推送到远程:使用git push命令,将当前的分支上所有改动内容推送到远程仓库中。

合并操作

git merge branchName 将branchName分支合并到当前分支
git merge --squash branchName 将branchName中的所有commit合并为一个,并应用到当前分支
git cherry-pick commitId 将commitId对应的提交应用到当前分支
git rebase branchName:把你的当前分支里的每个提交(commit)回退,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把当前分支更新到branchName分支,最后把之前的补丁应用到当前分支上。

git可以方便地开新分支开发,完成后合并到主干分支。涉及到两个分支之间的合并操作主要有merge、cherry-pick、rebase三个操作。

回退操作

git reset commitId 如果想回到当前分支历史上任意一个commit,可以使用reset
git reset --hard commitId 与不加hard相比,不加hard虽然git上回退,但所有文件的修改都还保留;加hard连文件都会退掉。
git revert 撤销某次commit,但会将这次撤销也作为一次commit,即做一次反向修改。

reset和revert的区别是,reset是直接会退到历史版本,且删除此版本之后的所有修改;而revert是将某次commit做一个反向修改,并产生一个新的提交。

相关文章

  • Git笔记

    资料 Git教程(廖雪峰) Git教程(菜鸟教程) Git - 简明指南 Git官网 首次创建 创建用户 进入代码...

  • git大全

    awesome-githubgit中文教程Git 使用规范流程Git 简明教程(新手写的可以参考)猴子都能懂得git教程

  • Git入门学习资源

    Git入门学习资料 廖雪峰 Git教程 Git官网 Pro Git git 简明指南 github-git-che...

  • Git和github

    git的相关资料: gitgit-简明指南git教程Git Community Book 中文版 什么是Git G...

  • Git版本控制与工作流

    专为设计师而写的GitHub快速入门教程 git - 简明指南 学习Git的在线互动教程 基本概念Git是什么?G...

  • Git 学习资源合集

    Git 学习资源合集 廖雪峰的 Git 教程 猴子都能懂的 Git 入门 git - 简明指南 阮一峰的常用 Gi...

  • Git学习使用总结(持续更新)

    常用操作 远程操作 分支操作 stash操作 标签操作 参考资料 git简明教程

  • Git简明教程

    本文主要介绍Git的一些常用命令,如创建分支、分支合并、代码回滚、设置忽略文件等。Git的工作原理不在本文的介绍范...

  • Git 简明教程

    SSH 进入 SSH 文件夹 生成 SSH Key 输入 SSH Key 名字 和 Key(此步骤可忽略) 显示 ...

  • Git 简明教程

    更新: 最近新做了一个 slide 声明1:本文关于git原理介绍的图片源自git官网(https://git-s...

网友评论

      本文标题:git简明教程

      本文链接:https://www.haomeiwen.com/subject/htissttx.html