git实用技巧

来源:互联网 发布:蜗蜗网络董事长秀才 编辑:程序博客网 时间:2024/06/03 03:22

=============================
什么是集中式?
集中式开发:是将项目集中存放在中央服务器中,在工作的时候,大家只在自己电脑上操作,从同一个地方下载最新版本,然后开始工作,做完的工作再提交给中央服务器保存。这种方式需要联网,现在云开发就是这样的处理方式。
缺点:1.如果网络出现异常或者很卡,直接影响工作效率。如果是中央服务器挂了,那就集体喝茶去了。
2.还有一种情况,各自电脑中操作的所有软件工具,都存放在一个中央服务器上(现在流行叫云服务器),只需要用各自电脑登陆连接到云服务器上,(一般服务器都是用linux),比如用ps工具,大家其实用的是云服务器中的同一个ps 软件,在使用率高的情况下,ps会出现异常,当用ps筛选颜色的时候,已经混乱,无法正常选择颜色,这个情况是我在开发中遇到的。以前我们是每个人用各自安装的ps,但是在这样的环境下用的是同一个ps软件的时候就会有bug。
3.安全度不高,重要的东西都放在一个中央服务器中,如果被黑,那损失就大了。
优点:1.减少了硬件和软件成本,硬件不用说了,现在流行盒子,一个小盒子只要连上中央服务器即可,以前都是一个个主机箱,那成本大多了。如果用到工具软件需要收费,只需买一套正版就OK了。

什么是分布式?
分布式开发:只要提供一台电脑作为版本集中存的服务器放就够了,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它也一样干活,只是交换修改不方便而已。而每一台电脑有各自独立的开发环境,不需要联网,本地直接运行,相对集中式安全系数高很多。
====================================

分支策略:master是非常稳定的,发布的版本。optimize 版本是用来干活以及给其他人衍生单独分支出去干活的。先在optimize上合并。


在你的项目代码中,开始启用git来管理你的代码
git init

查看分支情况
git branch

创建新的干活的分支,并且进入
git branch optimize
git checkout optimize

创建+切换分支:git checkout -b <name>合并某分支到当前分支:git merge <name>删除分支:git branch -d <name>

现在你就在一个安全的分支上,可以尽情地干活
git add . 【添加所有文件,支持正则表达式】
git add xxxx

git status

工作区 —-git add —> 暂存区 —-git commit -m “xxx”—–版本库

当完成某些阶段性的成果的时候,可以将代码提交【只是提交暂存区的文件,】
git commit -m “我做了一些非凡的工作”

在主分支上,融合一个经过考验的,安全的分支
git merge optimize

查看以往的版本修改信息
git log [–pretty=oneline]

版本倒回 HEAD^ HEAD是一个指针一样的东西,指向主线上文件当前状态;指向master; 是上一个版本,^^是上上个,倒回太多时候HEAD~100
git reset –hard HEAD^

版本往前 commit id 是之前用git log时候读取得到
git reset –hard [commit id]

记录用过的git的命令
git reflog

改错了但是没有提交到版本库,既没有commit
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

远程库:先在网上github建立仓库repo-name

推送仓库:
要关联一个远程库,使用命令git remote add origin git@github.com:jindezhang/repo-name.git;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

克隆仓库:
git clone git@github.com:jindezhang/repo-name.git

查看远程库信息,使用git remote -v;
================
冲突:在分支和主线上同时修改提交了同一个文件,合并时候出现冲突。解决后才可以合并。
查看分支合并图:git log –graph

标签:就像版本号一样,先进入需要打标签的分支。

创建标签:
git tag //git tag -a -m “blablabla” ///git tag
查看标签:
git tag ////git show

删除标签:本地 //远程(先删除本地)
git tag -d /// git push origin :refs/tags/
推送标签到远程库:
git push origin ///git push origin –tags

简单配置 cat .git/config

高亮:git config –global color.ui true
配置别名:例子 git config –global alias st status /// git config –global alias.unstage ‘reset HEAD’

原创粉丝点击