版本控制:一种在开发过程中用于管理文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前版本的软件工程技术。
分类:
1.本地版本控制:记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,比如RCS
2集中版本控制:所有版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,用户的本地只有自己以前所同步的版本,如果不联网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作,而且,所有数据保存在单一服务器上,有很大风险损坏,损失所有数据如SVN、CVS\VSS
3.分布式版本控制 Git :所有版本信息仓库全部同步到本地的每个用户这样就可以在本地查看所有版本历史,可以离线在本地提交,只需要在联网时push到相应的服务器或其他用户那里。由于每个用户那里都保存的是所有的版本数据,只要有一个用户的设备没有问题就可以恢复到所有的数据,但这增加了本地存储空间的占用。

git与svn的区别:
svn是集中式版本控制系统,版本库是放在中央服务器的,而工作的时候都使用的是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统必须是联网才能工作,对网络带宽要求较高。
git:分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网,因为版本都在自己电脑上。协同的方法就是这样的:比如说自己在电脑上改了文件A,其他人在电脑上也改了文件A,这时你们两只两之间只需把各自得修改推送给对方,就可以互相看见对方的修改了。

cd … :回退到上一个目录,
pwd显示当前所在目录路径
touch:新建一个文件 如 touch xxxx就会在当前目录下新建一个xxx文件
rm删除文件
mkdir :新建一个目录(文件夹)
rm -r : 删除一个文件夹,rm -r xxx 删除xxx目录
mv: 移动 , 如 mv aa src ,aa是我们要移动的文件,src是目标文件夹,这样写,必须保证文件和目标文件夹在同一目录下
reset重新初始化终端、清屏
history查看历史命令

git本地有三个工作区域 :工作目录、暂存区、资源库。加上远程git仓库就可以分为四个工作区域。提交路径git add files(.) ->git commit -m “注释”-> git push
git管理的文件有三种状态:已修改(modified),已暂存(staged)、已提交(committed)

git init初始化项目
git clone url :克隆

.gitignore文件
*.txt忽略所有以.txt结尾的文件,上传时就不会选中
!lib.txt但lib.txt除外
/temp,表示要忽略的文件在temp目录下,而子目录中的文件不会被忽略
bulid/:表示忽略build目录下所有文件

分支:
新建分支还在当前分支git branch 分支名
新建分支,并切换分支git checkout - b 分支名
合并指定分支到当前分支 git merge 分支名
删除分支 git branch -d 分支名
删除远程分支 git push origin --delete 分支名
git branch -dr [remote/branch]

关于在idae中操作分支:第一次在公司拉取项目后,新建分支并切换到新建的分支,在与多人协作共同开发时,在自己的分支首先add添加到自己的本地缓存区,在点击切换到master分支,先拉取远程主分支代码,在切换到自己创建的分支,在merge合并本地的master分支,然后在add,commit最后在上传到自己的分支。

关于编写自动化脚本使拉git仓库拉取最新代码:

echo  停止原来运行的工程
APP_NAME = project_name 项目名
tpid = `ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then 
    echo 'Stop Process...'
    kill -15 $tpid
 fi
 sleep 2
 tpid = `ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then 
    echo 'Kill Process...'
    kill -9 $tpid
else
    echo 'Stop Success!'
 fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/项目路径
echo 开始从Git仓库拉取代码
git pull
echo 代码拉取完成
outpt = `mvn clean package -Dmaven.test.skip=true`

cd target
echo 启动项目
nohup java -jar jar包名称 &> 日志名称 &
echo 项目启动完成
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐