多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
git搭建开发版本和使用 问题场景 暂时解决冲突合并的方法 git stash #把自己的版本备份,此时工作区回到了本地最新版本. git pull #将冲突的版本更新至本地仓库和工作区.实现同步至最新版本 git stash apply #将备份代码重新更新到工作区.若没有冲突即可直接提交本地并push到远端.有冲突,冲突会直接显示在文件中.处理好冲突,再提交推送 更换远端地址.  原本的gitlab服务因为域名备案没下来  是部署在有仅有IP的服务器上 域名下来后  需要进行远端更换 1.查看远端仓库源缺省别名,通常默认是origin   >git remote 2.删除当前远端   >git remote rm \[上一步获取的返回\] 3.新增远端    >git remote add origin \[origin地址\] 3.更换后首次推送需要加-u参数  >git push -u origin master 信息来源: 廖雪峰git教程 [https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000](https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) 一.搭建 1.linux源码安装 先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了。 二.使用 1.全局配置参数 $ git config --global user.name "54skyer" $ git config --global user.email "405661806@qq.com" 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。 注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。 2.创建仓库目录\[版本库\] $ mkdir learngit $ cd learngit $ pwd #查看当前路径 /Users/michael/learngit 3.初始化仓库  $ git init Initialized empty Git repository in /Users/michael/learngit/.git/ 图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。 Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动 强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。 4.添加版本库文件 在版本库目录下添加了新文件.此时文件是没有被git追踪的. 第一步,用命令git add告诉Git,把文件添加到仓库: $ git add readme.txt #对应sourcetree界面上的已暂存部分 $ git add –all #将所有更改加入暂存区 此时文件只是在进入仓库的暂存\[changes to be commited\],还未实质被仓库跟踪记录.此时也可以撤销staged.对应的 $ git reset readme.txt #对应取消sourcetree界面上的已暂存的指定文件 $ git reset #重设缓存区所有更改,但不影响工作区 第二步,用命令git commit告诉Git,把文件提交到仓库: $ git commit -m "wrote a readme file" #只是提交到本地仓库,因此不会有冲突,此时文件是\[已存状态\] git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。开发过程中一定要写.方便自己和合作伙伴查看 这两步过程有点像数据库的事务.只有最后commit才是真正的完成一个完整事件,没有commit之前,可以多次add和撤销 5.查看版本状态 $ git status #反馈的状态对应sourcetree上的未暂存\[changes not staged\]的部分,比如新增文件,文件更改,文件删除等等. 6.查看文件变化 $ git diff readme.txt #对应sourcetree点击提交的版本分支,查看文件版本变化.即提交前的版本和该版本的差异 整个过程类似于RPG游戏的存档,玩一段剧情,存档继续玩,防止因为一次剧情失败导致重玩或者回档到最后一次存档. 这么看的话.存档的频率越密集,代码changes丢失的风险越低 多个个人分支类似于不同角色的故事发展线,最后合并在一起.跟冰与火之歌类似,先各自发展故事线,最后统一对付鬼王 7.查看提交日志 $ git log #由近及远的显示commit -m 后的部分 通常会在后面加上参数 --pretty=oneline  这样每一行都是一个commit的mark 即 $ git log --pretty=oneline 每个版本会有一个commit id不会像svn这样的集中式版本管理.只有localcenter可以有类似锁的机制可以让提交顺序发生. 而git是selflocalcenter 即使不联网每个人也能在本地版本库进行开发,只是不能push和pull服务器版本库.同时git是分布式的,这样如果也用自增的commit id很容易造成push到center时commit id会冲突,因此git使用的是SHA1计算出来的一个非常大的数字,用十六进制表示 8.版本回退. 如果你错过了一个隐藏剧情,那只能退到隐藏剧情前的版本重玩了. 如果发现隐藏剧情索然无味,重玩浪费时间,回到最新档都可以自由切换 $ git reset --hard HEAD^  #向后退一个版本 $ git reset --hard 1094adb7b9b3807259d8cb349e7df1d4d6477073 #切换到指定版本,版本号不一定要完全写对,顺序填写至唯一时,git会自动识别  比如可能以下和以上是统一效果 $ git reset --hard 1094adb 一旦进行了回退,那么回退前的版本就无法在git log  和  git status中显示   好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办? 在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令: 找到commit\_id你就找到了时间标记,又可以坐时光机飞回来啦 HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit\_id。 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。 9\. 工作区 暂存区 本地仓库 工作区就是本地电脑的仓库目录,其中有个.git目录 可以使用 $ ls -ahl    #显示查看当前目录下所有文件及目录  暂存区和本地仓库在工作区目录第一层的.git文件夹,里面的文件默认隐藏.不要更改,否则会破坏git的管理结构 而这个目录即代表了本地仓库.其中最重要的概念为暂存区和版本分支 工作区和暂存区都只有唯一一个 版本分支可以有多个 版本分支可以理解为某个版本的副本