【阶段小结】协同开发——这学期的Git使用小结

一、Git简介

1. Git简单介绍

Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。

2. Git工作流程以及各个区域

img

  • Workspace:工作区
  • Staging/Index:暂存区
  • Local Repository:本地仓库(可修改)
  • /refs/remotes:远程仓库的引用(不可修改)
  • Remote:远程仓库

3. Git文件状态变化

img

二、Git安装&Git基本配置

由于网上教程很详尽了,此处省略简单的安装与配置,总的来说只需要配置好相应的git平台的账号配置即可。

就个人而言,我目前使用的git平台主要是github与gitee,主要是搭配git+vscode来使用,个人感觉开发效率极高。

三、个人踩坑

Git是我们“程序猿”常用的协同开发工具,由于本学期修了很多开发相关的课程,频繁地使用了Git。与之前简单的git push/pull,我也遇到了很多的新问题。

1. xcode project“抽风式”问题

对于简洁的C/C++/Golang等项目,使用git往往不需要太多配置。而对于基于objective-c的xcode project开发而言,如果不谨慎地设置gitignore文件,简直就会让协同开发效率事倍功半。

比如,我们很容易就很会出现由于新增了项目文件,在merge项目之后导致项目不能运行的情况(连编译都无法通过),这是由于xcode project有一大堆编译相关的文件,在merge之后往往会出现各种冲突,另外也有许多不必要的文件也被上传上去,导致项目仓库很臃肿,因此一个好的gitignore文件是很有必要的。

在这里我提供一个gitignore文件,虽然还不是很完善,但也比网上多数的要全面,仅供参考【其中Group8是项目名】:

.DS_Store
*/.DS_Store
*/**/.DS_Store
code/Group8/Pods/
code/Group8/Podfile.lock
*/UserInterfaceState.xcuserstate
code/Group8/Group8/.DS_Store

2. 如何拯救git仓库

在协同开发过程中,虽然我们可以建立个人分支,防止污染主分支,但是也有可能会出现一不小心把远程仓库弄“烂”或者向把远程仓库强制替换的情况。

这里我们主要聚焦于两个问题,即本地仓库强制替换为远程仓库与远程仓库强制替换为本地仓库,就个人而言,这两个操作足以避免我一开始减了几个个人分支的尴尬局面。

假设本地分支的仓库为henry,远程仓库为origin/henry

①本地仓库强制替换为远程仓库

git log #找到commitid
git reset --hard commitid #回滚本地仓库
git push origin henry --force #本地仓库强制替换为远程仓库

②远程仓库强制替换为本地仓库

git reset --hard origin/henry
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值