Git

工具:git分布式版本控制系统

2020-10-02  本文已影响0人  生信学习者2

Git分布式版本控制系统图示

分布式版本控制系统下的每一台终端都可以充当类似集中式版本控制系统的中央服务器。每台终端都可以保存版本库,并且版本库也可以不同,可以对每个版本库进行修改,修改完成后可以集中后最后更新,这更方便每个合作者之间的交流沟通。此外,git的分支等等策略更是合作方式的最佳办法。更多知识分享请到 https://zouhua.top/

分布式版本控制系统原理

理解git原理需要先理解几个术语:

git安装和使用

git软件分类

git使用软件类型有git shellgit desktop两种类型,git shell是直接使用git 命令行,包括git addgit commit等,其中以git bash软件为代表;git desktop类型主要是图形界面软件,可以通过鼠标点击按钮实现git add和git commit等功能,其中以GitHub desktop,smartgit等为代表。这里分别推荐git bash和github desktop。

安装软件

# 必须配置
git config --global user.name  "Hua Zou"
git config --global user.email  "zouhua1@outlook.com"

# 可选择配置
git config --global credential.helper store

# 检查配置
git config --list 
>user.email=zouhua1@outlook.com
>user.name=HuaZou

注册开源社区github

github是全球程序员交流平台,又因程序员大多数是单身男性,因此也被称为全球基友交流平台。注册分为三步:

  1. 创建账户;
  2. 选择订阅;
  3. 分享经历。

git ssh key 配置

为何要配置git ssh key呢?ssh协议可以避免输入账户名和密码直接拉去或上传代码至远程仓库。通过配置本地电脑或者位置的rsa公钥至github网址,可以实现无需输入用户名和密码的方式方便快速地提交和更新代码。解决方案如下:

  1. 打开本地git bash,使用ssh-keygen -t rsa -C "emailname@mails.com",一路回车,最后生成的文件位于~/.ssh/目录。打开目录内的id_rsa.pub文件,复制内容。
  2. 打开github网站,点击右上角头像,下拉菜单显示setting选项,选择添加rsa公钥。
  3. 测试是否添加成功。
ssh -T git@github.com
>Hi HuaZou! You've successfully authenticated, but GitHub does not provide shell access.

远程仓库

远程仓库是可以充当“中央服务器”托管代码的位置,其他终端可以从该处获取原始代码,从这一点看好像分布式版本控制系统与集中式版本控制系统无太大差别,但git的每一台终端都可以充当“中央处理器”且无主次之分,一般情况下大家会把某台24小时开机的终端看成“中央处理器”,每台终端从服务器拉取代码和提交修改等。

# step1: 登陆GitHub并创建example_git远程仓库

# step2: 跳转到本地仓库目录
cd  path_dir/example_git

# step3: 初始化版本库 .git
git init 

# step4: 连接本地仓库和远程仓库
git remote add origin git@github.com:HuaZou/example_git 

# step5: 推送本地文件至远程仓库,并且关联本地和远程的master分支
git push -u origin master # 第一次推送使用-u参数,后续只需要 git push origin master
# step1: 克隆远程仓库至本地工作区
git clone git@github.com:HuaZou/example_git

# step2: 查看工作区文件状态
git status

# step3: 提交工作区修改文件等至暂存区
git add filesname

# step4: 提交操作命令描述至本地仓库
git commit -m "operation description"

# step5: 推送本地仓库至远程仓库,注意保证远程仓库的head是高于本地仓库,否则会发生conflict错误
git push origin master
# step1: 查看文件状态
git status  

# step2: 如果文件只通过git add提交到暂存区
git checkout -- filename.txt

# step3: 如果文件已经通过git commit提交到本地仓库
git reset HEAD filename.txt # git reset不仅仅可以版本库回退也可以文件撤回修改

分支管理

分支是从主支线上分离出来,分支上的操作不会影响主线的工作,在完成分支上的任务后再合并到主线即可。

master分支一般仅仅发布新版本,工作的最新状态是在dev分支,其他人工作是在自己的分支等,如图:

标签管理

标签管理一般是工作完成到某个重要节点了,然后希望对工作进行标记,这个时候可以使用git tag给该阶段打上标签。

# 查看标签
git tag

# 在某个版本打上标签
git tag v0.1 <可加上某个commit版本>

# 给标签加上其他信息
git tag -a v0.1 -m "version 0.1 released" 1094adb

# 查看标签说明
git show v0.1

# 删除标签
git tag -d v0.1

# 推送标签
git push origin v0.1

引用

  1. git帮助文档
  2. 廖雪峰git教程

参考文章如引起任何侵权问题,可以与我联系,谢谢。

上一篇 下一篇

猜你喜欢

热点阅读