美文网首页
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官方

引自: 昭熙小乐的博客

相关文章

  • IDEA中git使用

    参考: 在IDEA中实战Git IntelliJ IDEA下的使用git

  • GIT实战

    git实战 git与svn的区别 git核心命令使用 git底层实现原理剖析 基于git通信协议搭建git私服 基...

  • Git 使用实战

    Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。作为一个标准的程序猿,Gi...

  • Git使用,实战版

    Git安装 地址:https://git-scm.com/downloads 下载对应平台的git版本安装即可 G...

  • Git 分支与合并

    前言:以下内容全部截选自实验楼课程【Git 实战教程】,更多Git 使用介绍,可以点击这里,进行查看~ 一、分支与...

  • Git之不明觉厉2-本地操作

    通过实战我们多看看一些命令吧。 GIT DIFF DIFF的简单使用 我们修改一下《Git之不明觉厉1》中的文件《...

  • Git实战使用技巧总结

    本文目录 1.克隆分支到本地 2.Git 分支相关问题 3.解决冲突 4.版本回退=>撤销上一次的提交 5.git...

  • 2018-07-02-5

    Git在 windows 使用方法 在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.tx...

  • gitlab笔记(一)

    git只学习过,但从未用过,这个项目是第一次使用gitlab。 git说简单也简单,但是坑还是不少,我作为一个实战...

  • Git

    1. 2. 在IDEA中实战Git

网友评论

      本文标题:Git 使用实战

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