因为用的是Ubuntu的,所以需要会的Linux下使用混帐
版本控制:
版本控制就是记录对文件,目录或者工程等的历史修改,方便查看更改历史,备份或者是恢复以前的版本等等
分布式版本控制:
分布式版本控制系统是把所有的版本信息仓库全部同步到本地,这样就可以在本地查看所有版本历史,可以离线提交,等有网的时候再推到相应的服务器或其他用户那里,由于每个用户那里保存的都是所有的版本数据,所以,只要有一个设备没有问题就可以恢复所有数据。
三个工作区域:本地数据(仓库)目录,工作区,暂存区
git directory就是我们的本地仓库.git目录,里面保存了所有的版本信息等内容。
working driectory,工作目录,就是我们的工作目录,其中包括未跟踪文件及已跟踪文件,而已跟踪文件都是从git目录取出来的文件的某一个版本或新跟踪的文件。
staging area,暂存区,不对应一个具体目录,其他只是git directory中的一个特殊文件。
当我们修改了一些文件后,要将其放入暂存区然后才能提交,每次提交时其实都是提交暂存区的文件到GIT中仓库,然后清除暂存区。而检出某一版本时,这一版本的文件就从git的仓库取出来放到了我们的工作目录。
文件暂存:
*** git add
*** git reset HEAD ^
***修改了一个文件,想还原文件git checkout -
文件修改:
*** git status只能查看对哪些做了改动,具体改动了什么要用git diff
其中---表示修改之前的文件,+++ b表示修改后的文件。红色表示修改的地方
文件移除:
*** git rm
提交文件:
*** git commit -a全部提交
*** git commit -m“”提交后注释
*** git commit --amend提交后发现有个文件改错了,或者只是想修改提交说明,这时可以对相应文件做出修改,将修改过的文件通过“git add”添加到暂存区,使用git commit --amend
如果文件已经提交了,就要用这种办法取消提交:
git revert
git reset HEAD
分支合并合并和重订的区别:
分支合并(merge)是将两个分支的改动合并到一起,并生成一个新的提交,提交历史是按时间排序的,即我们实际提交的顺序,通过git log --graph或一些图形化工具,可能很明显地看到分支的合并历史,如果分支比较多就很混乱,而且如果以功能点新建分支,等功能点完成后合回主线,由于合并后提交是按提交时间排序的,提交历史就比较乱,各个功能点的提交混杂在一起,还可能遇到上面提到的补丁问题。
而分支衍合(变基)是找到两个分支的共同祖先提交,将要被底垫进来的分支的提交依次在要被底垫到的分支上重演一遍,即回到两个分支的共同祖先,将分支(假如叫实验)的每次提交的差异保存到临时文件里,然后切换到要衍合入的分支(假如是主),依次应用补丁文件。实验上有几次提交,在主就生成几次新的提交,而且是连在一起的,这样合进主线后每个功能点的提交就都在一起,而且提交历史是线性的
*** repo start zhuzhu:创建一个zhuzhu分支
*** repo init -u
*** repo sync。下载最新代码相当于git clone
*** repo status:查看本地所有Project的修改,在每个修改的文件前有两个字符,第一个字符表示暂存区的状态。
*** repo prune
*** repo branch:查看所有的分支
*** repo upload:上传本地提交到服务器
*** repo forall -c'git reset --hard HEAD; git clean -df; git rebase --abort':可以撤销整个工程的本地修改
项目用到的命令有:
***创建分支:repo start zhuzhu:创建zhuzhu分支
***下拉代码:repo sync。:下拉代码,注意最后点点
***文件备份:mv zz zz.bzk:备份一份名为zz.bak
***复制一个文件夹:cp -rp lnt(源文件)zhzh(新文件)复制lnt文件为zhzh
***提交代码:git add zz:添加zz文件
git commit -s:提交一个目录所有git commit --amend:追加
repo上传:
***起python:python -m SimpleHTTPServer 8080
***查看状态:git status
***查看ip:ifconfig -a
***打包:tar -zcvf ZZ.Tar aa
***版本回退:git log:查看已经提交的
HEAD表示当前版本
git reset --head HEAD ^ / git reset HEAD ZZ
总结命令:
1,man指令:查看命令用法,例如:man ls;查看ls命令用法,
注:按q键或者按Ctrl + C可以退出当前程序
2,LS命令,查看目录中的文件或者文件的属性,
3,cp,顾名思义,copy拷贝文件/拷贝目录
cp 1.c 2.c;拷贝当前文件夹下的1.c,拷贝后名字为2.c.
cp -r zrfdir zrfdir1;拷贝zrfdir目录,拷贝后目录名字为zrfdir1
cp zrfdir / * zrfdir2;拷贝zrfdir目录下的所有文件到zrfdir1
cp 1.c zrfdir / 2.c;拷贝1.c文件到zrfdir目录下,拷贝后的文件名字为2.c
4,RM,删除删除文件/目录
rm 1.c;删除一个文件
rm 1.c 2.c 3.c 4.c ...;删除多个文件
rmdir zrfdir;只能删除非空目录
rmdir zrfdir zrfdir1 ...;删除多个非空目录
rm -r zrfdir;可以删除任何目录
rm -r zrfdir zrfdir1 ...;删除多个目录
rm zrfdir / 1.c;删除目录下的文件
5,mkdir,makedir创建目录
mkdir zrfdir;如果zrfdir目录不存在,则创建目录
mkdir zrfdir / 1.c;在zrfdir目录下创建名为1.c的文件
6,创建分支
repo start zhuzhu创建zhuzhu分支
7,whoami,whereis,which,id
whoami;获取到用户名
whereis bin;获取目录
bin;与whereis类似
ID;获取到UID,GID,组信息
UID:用户唯一身份标识
GID:用户组身份唯一标识
8,杀,杀死正在进行或已经是DEST状态的进程
ps -aux:查看所有进程
sudo kill PID:杀死相对应的PID号码
9,焦油,解压文件,gzip的,压缩文件
ubuntu一般用tar -zcvf lnt.tar lnt将lnt文件压缩
gzip zrfdir / 1.c;压缩zrfdir目录下的1.c文件
解压
tar -xvf archive.tar -C / tmp将压缩包释放到/ tmp目录下
Ubuntu的安装节点:
安装nodeJs8.x版本
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
安装nodeJs9.x版本:
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs