阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Git分布式版本控制系统快速参考

402次阅读
没有评论

共计 4871 个字符,预计需要花费 13 分钟才能阅读完成。

一. 安装与配置 Git
    Git 是一个开源的分布式源代码版本控制系统,主要是在 Linux/Unix 系统上使用,现已被移植可以到 Windows 系统上使用.
    Windows 上的 Git 是 msysgit,图形界面环境可以使用 tortoisegit,一般配合使用,先安装 msysgit 再安装 tortoisegit.
    Git 下载地址:
    http://git-scm.com/download/
    TortoiseGit 下载地址:
    https://code.google.com/p/tortoisegit/
    安装 msysgit 和 tortoisegit 时基本上都是选择默认选项.
    在 Windows 平台安装 msysgit 后,Git 的命令环境是 Git Bash.

    配置 Git 的 User 信息.   
    $ git config –global user.email “gymsoft@163.com”
    $ git config –global user.name “gym”

    Git 的使用可以参考官方文档:
    http://git-scm.com/docs

二.Git 服务器搭建
    一般需要搭建一个 Git 服务器作为远程仓库(Remote Repository),用于开发团队存储和交换开发成果的媒介.
    实际上对于分布式方式来说,远程仓库和本地仓库管理的内容是一样的
    远程仓库可以使用 Github 或自己搭建 Git 服务器。
    如果在 Windows 平台搭建 Git 服务器,还需要 CopSSH 软件作为 ssh 服务器,使用 putty 或其它 ssh 客户端软件访问和管理服务器.

    配置 Git 服务器(Windows 平台),需要 CopSSH + Git
    先安装 msysgit, 再安装 CopSSH.
    打开 CopSSH,创建帐户,激活帐户.
    复制 git 的文件到 copssh 的 bin 目录下
    bin/libiconv-2.dll
    libexec/git-core/git.exe
    libexec/git-core/git-receive-pack.exe
    libexec/git-core/git-upload-archive.exe
    libexec/git-core/git-upload-pack.exe

三.Git 常用操作命令
1. 创建版本库(init)
    版本库又叫仓库(Repository),是存放需要管理的文件的目录,创建版本库就是创建一个目录并初始化.
    $ mkdir repo
    $ cd repo
    $ pwd
    /E/repo
    $ git init
    初始化库后,将会在版本库目录下创建一个.git 的隐藏目录,是由 Git 管理的版本库.   
    初始化后将会产生一个主分支(Branch): master,可以查看版本库的状态
    $ git status

2. 添加文件进版本库管理(add)
    $ git add .          #添加所有文件
    $ git add filename  #添加指定文件
    修改文件也是用 git add

3. 提交更改(commit)
    用 commit 命令提交更改,需要备注信息.
    $ git commit -m “description”

4. 暂存更改(stash)
    将工作区中有修改还未提交的更改储藏到暂存栈中,清干净工作区
    $ git stash
    显示暂存栈中储藏的更改
    $ git stash list
    将储藏的更改从暂存栈中恢复到工作区
    $ git stash pop
    清除暂存栈中内容
    $ git stash clear
   
5. 分支管理(branch,merge)
    $ git branch branch_name    #创建新分支
    $ git checkout branch_name  #签出并切换到新分支
    或者一条命令做两条命令的事: 创建新分支并切换到新分支
    $ git checkout -b branch_name
    查看当前分支
    $ git branch
    在看看当前分支的状态
    $ git status
    合并分支,将分支上的工作合并到 master 分支上.
    $ git checkout master
    $ git merge branch_name
    删除分支
    $ git branch -d branch_name

6. 版本库共享与更新(push,fetch,pull)
    将本地版本库推送到远程版本库
    $ git push origin master
    抓取远程版本库
    $ git fetch origin deve
    抓取远程版本库并合并到本地版本库
    $ git pull origin deve

7. 标签(tag)
    创建标签
    $ git tag -a ‘release_1’ -m ‘tag code’ HEAD
    推送标签到远程版本库
    $ git push origin tag release_1
    查看标签
    $ git tag -l
    删除标签
    $ git tag -d release_1

四. 版本库操作示例
    1. 远程版本库(Remote Repository) 操作示例
    在实际应用中一般将版本库放在远程服务器上,开发团队不直接操作远程服务器,每个开发成员从远程服务器上克隆一个版本库到本地。
    开发工作将在本地版本库中完成,更改后提交到本地版本库,再推送到远程版本库中.
    当然,远程版本库(Remote Repository) 可以放在远程服务器上,也可以放本地.

    (1)创建新的远程版本库
    $ mkdir remoterepo/project    #创建空目录 remoterepo/project 作为项目远程版本库
    $ cd remoterepo/project        #进入创建的目录
    $ git init                    #将创建的目录初始化为版本库
    $ git status                  #查看版本库状态

    (2)添加文件进版本库管理并提交
    在目录 remoterepo/project 下添加一些文件,再将这些文件添加进版本库管理
    $ git add .                    #添加文件进版本库管理 - 添加所有文件
    $ git add filename            #添加文件进版本库管理 - 添加指定文件
    $ git commit -m “add file”    #提交更改

    (3)创建新分支 deve 作为开发分支
    $ git branch deve              #创建新分支 deve
    $ git checkout deve            #签出并切换到新分支   
    $ git checkout -b deve        #或者一条命令做两条命令的事: 创建新分支并切换到新分支
    $ git branch                  #查看当前分支   
    $ git status                  #再看看当前分支的状态

    $ git checkout -b master      #切换到主分支.

    2. 本地版本库 (Local Repository) 操作示例
    (1) 克隆远程版本库到本地
    $ mkdir localrepo             
    $ cd localrepo               
    $ git clone ../remoterepo/project/.git    #克隆远程版本库到本地,默认只克隆了 master 分支
    $ git clone -b master ../remoterepo/.git  #选择克隆版本库的某一分支
    $ git clone git://github.com/…/….git  #如果是从远程服务器克隆.
    执行之后就把版本库的内容全部都复制过来了.
    $ cd project
 
    查看远程库信息
    $ git remote              #在本地,远程仓库的默认名称是 origin
    origin
    $ git remote -v
    origin  e:/localrepo/../remoterepo/project/.git (fetch)
    origin  e:/localrepo/../remoterepo/project/.git (push)

    默认只克隆了 master 分支,可以依远程库分支 deve 创建新分支 deve
    $ git branch origin/deve
    $ git checkout deve

    (2)修改并提交分支 deve
    $ git checkout deve    #签出分支
    $ git add .            #新增或修改代码后,添加文件进版本库管理
    $ cat .gitignore      #忽略特定文件或目录
    #.[oa]
    #~

    $ git diff            #查看 staging 文件差异,未添加进库管理时的差异
    $ git diff –cached    #查看 staging 文件差异,已添加进库管理时的差异

    $ git commit -m “add file”  #提交更改,提交到本地版本库

    (3)创建新分支
    当有某种需要时可以再创建新分支
    $ git branch test          #创建分支 test
    $ git checkout test        #切换到分支 test
    $ git add .                #新增或修改代码后,添加文件进版本库管理
    $ git commit -m “add file”  #提交更改

    (4)合并分支
    $ git branch              #查看当前分支
    $ git checkout deve      #切换到分支 deve
    $ git merge test          #将分支上的工作合并到 master 分支上.

    解决分支合并冲突: 当各分支修改同一个文件内容,在合并时就可能会出现冲突,无法自动合并分支,需要解决冲突.
    $ vi test4.txt          #查看冲突的文件
    <<<<<<< HEAD
    test4
    =======
    test4test4test4
    >>>>>>> test
    Git 会用 <<<<<<< ======= >>>>>>> 标记出不同分支的内容,修改后保存:

    $ git add .               
    $ git commit -m “add file”

    $ git branch -d test      #合并完成后可以删除分支

    (5)推送到远程版本库.
    $ git push origin deve
    在推送到远程版本库时,有可能远程版本库的内容已经被别人更改,此时需要解决冲突.
    一般需要使用 fetch 或 pull 下载最新的版本后合并分支,然后再推送到远程版本库.

    (6)抓取远程版本库(fetch,pull).
    获得更新到本地版本库(fetch)
    $ git fetch origin deve          #从远程版本 deve 主分支下载最新的版本到 origin/deve 分支上
    $ git log -p deve..origin/deve  #比较本地的 deve 分支和 origin/deve 分支的差别
    $ git merge origin/deve          #合并分支 deve

    从远程版本库获取最新版本并合并到本地版本库(pull)
    $ git pull origin deve

Fedora 通过 Http Proxy 下载 Git http://www.linuxidc.com/Linux/2009-12/23170.htm

在 Ubuntu Server 上安装 Git http://www.linuxidc.com/Linux/2009-06/20421.htm

服务器端 Git 仓库的创建(Ubuntu)http://www.linuxidc.com/Linux/2011-02/32542.htm

Linux 下 Git 简单使用教程(以 Android 为例)http://www.linuxidc.com/Linux/2010-11/29883.htm

Git 权威指南 PDF 高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm

Git 2 分钟指南 http://www.linuxidc.com/Linux/2014-11/109201.htm

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4871字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984914
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...