美文网首页
Git 使用实战

Git 使用实战

作者: 回首潇潇雨歇处 | 来源:发表于2019-11-05 22:46 被阅读0次

    Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
    作为一个标准的程序猿,Git的使用是必须掌握的。为什么呢?高端大气上档次装B必备技能,哈哈~

    这里就记录一下自己在使用Git的过程中遇到的问题以及总结,如有不对处还请指正,谢谢。

    安装 Git

    Linux 上安装Git

    Linux 各版本通用的源码安装:
    先从官网下载源码然后解压,依次执行./config, make , sudo make install 即可

    cd /opt
    mkdir software
    cd software
    wget https://www.kernel.org/pub/software/scm/git/git-2.10.5.tar.gz
    tar -zxvf git-2.10.5.tar.gz
    cd git-2.10.5
    ./config
    make
    sudo make install
    

    安装过程中请耐心等待,安装成功后在命令行输入 git --version 显示出版本号那么恭喜你,安装成功!

    Mac 上安装Git(本文的环境)

    采用Homebrew 的方式安装,如果你的机器上没安装 Homebrew 建议先安装 Homebrew,然后根据其文档进行安装 Git 即可

    Windows 上安装Git

    在 Windows 上安装使用 Git, 是不是首先就想到了 exe 文件呢,哈哈~ Windows 忠实粉。
    我们到Git官网上去下载 Git安装包, 然后默认安装一路到底就行,安装成功后找到 Git Bash 点击打开会弹出 Git命令窗口,恭喜你,安装成功了!
    安装成功后还需要配置一下Git环境,在弹出的命令行中输入:

    git config --global user.name "Your Name"
    git config --global user.email "Your Email"
    

    注意<font face="微软雅黑" color="red" size="3"> git config </font>命令的 <font face="微软雅黑" color="red" size="3"> --global </font> 参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

    常用命令

    • git init
      初始化本地工作目录,git init blog

    • git clone 从远程的版本库克隆到本地,git clone git://github.com/jquery/jquery.git

    • git status 查看仓库状态

    • git remote 访问远程服务器上创建一个目录

      • git remote -v 查看远程仓库
      • git remote add [name] [url] 添加远程仓库
      • git remote rm [name] 删除远程仓库
      • git remote set-url --push [name] [newUrl] 修改远程仓库
      • git pull [remoteName] [localBranchName] 拉取远程仓库到本地分支
      • git push [remoteName] [localBranchName] 将本地分支代码推送到远程仓库
    • git add 将修改添加到暂存区

      • git add . 添加所有的修改
      • git add filename 添加指定文件的修改
      • git add *.json 添加所有 json 文件
      • git add book* 添加所有 book 开头的文件
    • git commit -m "comment" 将暂存区的代码提交到仓库,comment 可作注释

    • git pull 拉取远程仓库

    • git push 推送代码到仓库

    • git branch 分支

      • git branch 查看本地所有分支
      • git branch -r 查看远程分支
      • git branch [newBranchName] 创建本地新分支
      • git checkout [branchName] 切换到一个存在的分支
      • git checkout -b [newBranchName] 创建新分支,并切换到新分支
      • git branch -d [branchName] 删除指定分支(已和产生该分支的主分支合并)
      • git branch -D [branchName] 强制删除指定分支,无论是否合并
      • git push origin [branchName] 创建远程分支(本地分支push到远程)
    • git checkout

      • git checkout . 丢弃工作区所有的修改退回到原始状态,不包括添加到暂存区的修改
      • git checkout filename 丢弃指定文件的修改回到原始状态
      • git checkout branchName 切换到指定分支
    • git reset 版本回退

      • git reset HEAD filename 丢弃指定文件添加到暂存区的修改
      • git reset --hard HEAD^
      • git reset --hard HEAD^^
      • git reset --hard HEAD~100
      • git reset --hard 321456
    • git log 查看 git 的 commit 信息,包括注释在内

    • git diff 在文件修改了未提交之前查看修改的部分

    • git merge branchName 合并指定分支到当前分支

    • git stash 将当前工作区的修改暂存起来,就像堆栈一样,可以随时将某一次缓存的修改再重新应用到当前工作区

      • git stash 暂存当前修改内容到堆栈
      • git stash list 查看当前暂存堆栈列表
      • git stash apply@{x} 应用任意一次修改到当前工作区,其修改内容还继续保留在暂存列表,并未丢弃
      • git stash pop 弹出最近的暂存,弹出后列表里将不再有了,如果当前工作区不干净,弹出时有冲突,则暂存列表会继续保留修改
      • git stash save [comment] 保存时打标记,使得你用git stash list的时候显示这些标记,方便你回忆是修改的什么
      • git stash drop stash@{x} 丢弃某次修改
    • .gitignore 提交时忽略的文件配置

      有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,这个时候就需要用到此文件了。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。例如:

      .DS_Store
      Thumbs.db
      db.json
      *.log
      node_modules/
      public/
      .deploy*/ 
      

    分支管理(项目管理)

    当我们创建一个项目的代码仓库的时候,会默认创建一个主分支 master 分支,但实际应用中,对于一般的线上项目而言,我们基本上都会按照项目环境进行创建相应的分支,比如:

    环境 分支
    开发环境 development
    测试环境 test
    预发布环境 stage
    生产环境 online

    当我们需要进行协同开发的时候,从远程仓库将代码克隆到本地,然后创建属于自己的develop 分支,待完成编码之后将代码 merge 到 test 分支提交到远程仓库供测试人员进行初步测试,初步测试通过之后发布之前将代码合并到stage 分支进行预发布测试,再次测试通过之后,将代码 merge 到 online 分支发布上线。具体的各分支以及开发人员之间的协同与配合,请自行查阅。

    代码托管平台

    GitHub

    <img src="http://blog-img.muxiao520.com/github.JPG" width="150" height="100">

    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。其使用的基于Web的代码托管服务,是目前全球最大的开源社交编程及代码托管网站。

    我一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。

    注册

    打开Github 官网,填写资料点击 Sign up for Github

    github sign in
    创建代码仓库

    注册成功之后,登录点击头像按钮选择 Your profile -> Repostories -> New 创建一个代码仓库;
    [图片上传失败...(image-fcae98-1572965169660)]

    SSH 配置

    本地装好 git 之后,需要我们生成 SSH key 和我们的 github 账户进行关联,执行 ssh-keygen -t rsa -C "email@foxmaol.com" 然后一路到底即可,就会在你的.ssh 文件夹下生成两个文件 id_rsa 和 id_rsa.pub,分别为私钥和公钥。

    回到github网站上来点击 头像 -> Settings -> SSH and GPG keys -> New SSH key,其中 title 可以自定义填写,将刚才生成的公钥里的内容全部复制下来粘贴到 Key 的输入框中点击下方 Add SSH key 即可

    add ssh key
    然后就可以通过 SSH 的方式 clone你自己github上的仓库了

    Bitbucket

    <img src="http://blog-img.muxiao520.com/bitbucket.jpg" width="200" height="100">

    BitBucket 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。

    特点:
    • 无限制的私有仓库个数
    • 无限制的磁盘空间
    • 同时支持https/ssh
    • Bug 跟踪
    • 项目Wiki
    • API 支持
    • 灵活的权限控制
    • 可自定义域名
    • RSS 修改记录输出
    • 自定义下载

    对于个人来说最重要的就是<font face="微软雅黑" color="red" size="3">无限制的私有仓库个数</font>啦,有一些不希望别人看到源码的项目就可以托管到这里来,使用和 Github 一样的。 Bitbucket 官网

    Coding

    <img src="http://blog-img.muxiao520.com/coding.jpg" width="150" height="100">

    Coding 是一个面向开发者的云端开发平台,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作, 是目前国内体验最接近 github 的产品。

    也可以创建私有项目,还提供了webIDE,所有的工作可全部在云端完成。

    Coding,让开发更简单!
    Coding 官网

    码云

    <img src="http://blog-img.muxiao520.com/%E7%A0%81%E4%BA%91.jpg" width="100" height="100">

    关于码云的使用,推荐到廖雪峰老师的博客使用码云-廖雪峰看一下,其写的很详细了,在这里谢谢廖雪峰老师。 码云官网

    GitLab

    <img src="http://blog-img.muxiao520.com/gitlab.jpg" width="100" height="100">

    gitlab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。
    GitLab 官网

    关于这几个托管平台的比较,请参考GitHub & Bitbucket & GitLab & Coding 的对比分析-FIR-im官方

    多平台同时使用

    如何进行多个代码托管平台在一台电脑上同时使用呢?我们知道本地电脑与平台之间的通信校验是通过 ssh 配置进行的,那么我们就要来配置我们的 ssh了。

    在上边我们已经介绍过如何生成 ssh key 以及如何添加到我们的平台账户里。
    做到多平台同时使用首先我们要为每个平台生成一个 key(如果注册邮箱一样可以使用同一套公钥私钥)并将公钥添加到平台的 SSH 配置中, 接下来就是编写我们的.ssh/config,如下

    Host github.com
        User git
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_git
    
    Host bitbucket.org
        User git
        HostName bitbucket.org
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_bit
    
    Host coding.net
        User git
        HostName coding.net
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_coding
    

    编写完进行保存,这样我们就可以通过 SSH 的方式克隆各平台的仓库并提交我们的代码了,具体的各参数的意义请参考 如何使用特定的SSH Key提交GIT

    推荐工具

    Git Windows 客户端

    SourceTree

    借鉴

    搭建 Git 服务器-廖雪峰
    如何使用特定的SSH Key提交GIT
    通过SSH 密钥连接GitHub/Bitbucket
    GitHub & Bitbucket & GitLab & Coding 的对比分析--FIRim官方

    引自: 昭熙小乐的博客

    相关文章

      网友评论

          本文标题:Git 使用实战

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