写给UI开发的Git入门指南

腾讯工蜂Git:基于Git的企业级协作开发解决方案,腾讯未来研发关键系统

https://code.tencent.com

腾讯工蜂用户:熊申平

Git是作为一款最先进的分布式版本控制系统在公司内外越来越流行,目前WeGame中也有部分项目陆续切换到Git,本文根据自己在项目中的使用经验整理而成,期望能帮助团队小伙伴在windows开发环境下从SVN快速切换到Git。

一、Git比SVN好在哪里?

1,Git代码更为安全。在SVN集中式版本控制下,项目成员的代码都要提交到一台中央服务器,如果这台服务器出现问题,大家就不能正常工作甚至代码丢失。

SVN集中式版本控制

而在Git分布式版本控制下,代码的版本控制是建立在本地机器上的,每个项目成员本地都保存了一份完整的版本库,理论上各成员之间是不需要依赖中央服务器进行版本控制的,但实际工作中还是有一台充当中央服务器的电脑方便成员间交换各自的修改。

Git分布式版本控制

2,Git效率更高。用Git进行版本控制,提交代码等一系列操作都是在本地机器上进行的,提交代码、分支切换、版本回退等操作不依赖于网络,所以操作效率更高

3,Git分支管理更加方便。能在一个代码仓库里面进行多个分支的任意切换,一个git checkout 命令就能搞定,切换之后本地代码立即自动更新到对应的分支,而不需要像SVN另外拉取分支代码目录

二、Git环境搭建

1,Git傻瓜式安装。直接去git官网下载安装文件,一步步根据提示选择默认操作即可,目前的安装文件基本都自动配好环境变量,无需手动配置:

https://git scm.com/

安装完成之后,打开命令行工具CMD运行git --version命令,出现git版本号即表示安装成功

git --version

2,生成SSH公钥并在代码托管站上进行配置。SSH公钥帮助我们在本地机器跟远程代码托管站之间建立完全链接,并且避免以后向远程代码托管站推送(push)代码的时候重复输入账号密码。

widnows下需要用Git Bash这个工具生成SSH公钥,Git安装过程中会自动安装Git Bash,在桌面上鼠标右键选择Git Bash,

启动Git Bash

在打开的Git Bash中运行 ssh-keygen -t rsa -C “xxx@x.com”这个命令,出现的几个提示都直接Enter键即可,之后就会生成SSH公钥,一定不能用windows自带的CMD命令行工具,邮箱是你在代码托管站注册帐号的邮箱

ssh-keygen -t rsa -C “xxx@x.com”

接着运行 cat ~/.ssh/id_rsa.pub 命令查看SSH公钥并复制下来:

cat ~/.ssh/id_rsa.pub

最后在代码托管站点的SSH公钥设置中配置即可:

设置代码托管站的SSH公钥

(工蜂SSH设置文档:https://code.tencent.com/help/productionDoc/profile#ssh)

至此就完成了整个Git环境的搭建,我们在本地和远程代码托管站之间就能方便的使用Git进行版本控制。

三、Git的基本操作

我们实际项目中基本都会把代码托管在工蜂远程代码托管站点上面,很少只把代码仓库放在本地机器上的,所以这里从代码托管站上开始建立Git项目。

1,在代码托管站建立项目仓库。如图所示:

2,项目仓库建立完成之后克隆到本地,推荐从SSH协议的地址克隆

这个时候就可以打开cmd命令行工具运行git clone xxx 克隆远程项目到本地了

3,把修改的、增加的文件提交到版本库。正式提交版本库之前我们可以通过 git status查看项目文件修改情况,也可以通过git pull命令拉取最新的远程代码托管站上的最新版本,然后执行git add . 命令将所有修改文件提交到本地版本仓库的一个“暂存区”,然后执行git commit -m “注释”命令将提交到“暂存区”的文件正式提交到本地版本库。

提交代码到暂存区

至此,你的代码已经处在Git版本控制下了,但为了方便团队小伙伴跟你一起工作,你需要把代码推送到一个其他人能够拉取的地方——代码托管站

4,将本地代码同步到远程代码托管站。我们只需要运行git push命令即可将本地版本库代码推送到远程代码托管站。

git push

四、Git分支管理

在实际项目中,为了降低风险,我们通常会根据项目版本迭代情况建立分支进行开发,在每个分支上完成特定功能的开发,然后将分支代码合并到主干。

分支开发

我们的项目的代码一般都会放在代码托管站上,所以这里我们还是从代码托管站上建立分支开始。

1,在远程代码托管站上建立分支。点击创建分支的按钮,输入分支名字即可创建,一般默认会创建基于主干的分支

创建分支

2,拉取远程分支到本地。建立分支之后,运行git pull就能吧远程代码托管站中的项目分支同步到本地

git pull

3,切换到分支。通过git pull命令虽然将远程分支拉取到了本地,但本地需要在分支上进行开发还需要运行git checkout xxxx切换到分支,这样在本地代码上所做的修改才是在分支上进行的修改

git checkout xxx(分支名)

4,提交代码到本地分支。切换分支完成开发之后,需要将修改的代码提交到本地分支,同样执行git add .git commit -m "注释"两个命令即可

提交代码到本地分支

5,推送分支代码到远程代码托管站。分支完成开发之后同样需要通过git push命令同步到远程代码托管站,以方便其他项目成员更新最新的代码。

6,合并分支到主干。分支功能完成之后需要合并到项目主干,首选需要通过git checkout master命令切换到主干,然后运行git merge origin/branchName 命令即可合并分支代码到主干,合并到主干之后同样需要通过git push命令推送合并了分支的主干到远程代码托管站。

通过以上这些分支操作步骤可以发现,Git的分支切换是相当方便的,不必像SVN那样每个分支都拉取一个项目目录

五、Git GUI之GitHub Desktop

命令行工具可能不太直观,安装Git的过程中也会自动安装一个自带的Git GUI工具,但我更喜欢用GitHub Desktop这个GUI工具来进行版本管理。

1,用GitHub Desktop克隆项目。如图:

选择Clone repository,在弹出框选择URL选项即可用GitHub Desktop克隆其他非GitHub站点的代码仓库

2,用GitHub Desktop提交修改到版本库。如图

GitHub Desktop 中的Commit to xxx这个按钮合并了git add和git commit两个命令,点击该按钮就能提交修改文件到当前分支

3,用GitHub Desktop同步远程代码托管站

如图所示,这个按钮合并了git push和git pull命令,点击Commit to xxx之后在点击上图这个按钮即可将本地代码推送到远程代码托管站

4,用GitHub Desktop创建、切换分支

点击Current branch即可在下拉框中创建新的分支或者切换到一个已有的分支

5,用GitHub Desktop合并分支

点击Branch选项卡,选择Merge into current branch,然后在弹出框中选择需要合并到Current branch的分支即可合并

六、代码版本冲突

多人合作过程中代码冲突是比较常见的问题,我们只需要搞清楚代码在什么情况下会冲突以及怎么解决这个冲突:

1,代码在什么情况下会发生冲突

push代码到远程代码托管站的时候,如果同一个文件被他人修改且已经push到了远程代码仓库;merge不同分支的时候,如果同一个文件出现修改等都会提示代码冲突。

2,如何解决冲突

出现代码冲突的时候先运行git pull命令,这时冲突的代码会呈现在本地(如上图所示),然后手动修改代码,重新执行git add .git commit -m “注释”、再git push就可以了。

以上这些内容就是Git版本管理的常用操作,熟悉这些基本可以从SVN快速切换到用Git进行代码的版本控制。


扫描以下二维码,研发管理从此高效、轻便、可靠

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

推荐两个bash环境下的Git插件

情景 在使用Git时,常遇到这样的情况: 使用子命令时必须完全输入,并不能像shell那样有命令补全的功能; Git鼓励大量使用分支,当在分支之间切换时,常常需...

38190
来自专栏软件开发 -- 分享 互助 成长

source insigt、pc-lint、VS联合使用

前言:     近几天参加公司培训,公司要求,开发的时候使用source insight、PC-lint和VC来编程和调试,这不用不知道,一用吓一跳,这套工具一...

36690
来自专栏FreeBuf

ProxyChains实现自动添加代理逃避检测

使用爬虫爬取网站或者使用扫描器扫描目标时经常会遇到扫描频率较为频繁导致IP被封或者限制访问的情况,这时候我们就需要考虑利用IP代理的方式不断的变换IP进行爬虫和...

47350
来自专栏运维小白

keepass软件使用

下载地址 windows 地址 iphone直接在应用商店下载minikeepass 安卓版本——>需要翻墙下载 安装使用 在存放到一个目录下,然后点击安装,...

265100
来自专栏用户画像

MAC Elasticsearch安装

https://www.elastic.co/downloads/elasticsearch

9020
来自专栏macOS 开发学习

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(二)

1.1 选中ViewController.m文件,添加鼠标左键点击事件监听,实现代码如下图:

12430
来自专栏SpringBoot 核心技术

Git核心技术:在Ubuntu下为Gitolite添加管理端

在之前章节已经完成了服务端的配置,可以访问Git核心技术:在Ubuntu下部署Gitolite服务端查看配置步骤,因为gitolite的管理是通过一个名为git...

17220
来自专栏运维小白

Git客户端安装及使用

背景 为了我帅气而高大尚的博客一直在研究github,在网上找了一圈,找到了Git的客户端 安装github Git是目前世界上最先进的分布式版本控制系统,gi...

34780
来自专栏LhWorld哥陪你聊算法

【Python篇】---Python3.5在Centoos的安装教程--超实用

Python3在公司用的还是比较多的,但一般Centoos默认是python2的环境。所以本文就python3的安装做个总结。

16220
来自专栏我和PYTHON有个约会

Django来敲门~第一部分【2. 安装】

安装完成后,我们需要验证安装是否成功,可以执行如下命令,通过查看安装的django版本信息来验证

12320

扫码关注云+社区

领取腾讯云代金券