linux系统 之 git

1,git是啥?

    最流行的分布式版本控制系统,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。

    重点1:git是分布式控制系统,没有中央服务器,每个设备上都有完整的版本库。

    重点2:文件的改动历史是可见的,便于管理的

2,配置和使用

    >git config --global user.name "Scott Chacon"    #启用前设置名字

    >git config --global user.email "[email protected]"    #启用前设置email,个人设置的配置文件会在根目录的隐藏文件:.gitconfig 中保存

    >git init    #第一次使用远程仓库,还没有仓库地址,先等等,参考资源:https://blog.csdn.net/TheMeLove/article/details/78228815,约等于百度云吧,我猜。

    >git clone +网址    #会从远程仓库克隆代码,约等于从百度云下载资源,当然在github上,采用这种办法下载别人的开源代码也是可以的

    >git init     #会在当前文件夹下创建一个.git隐藏文件,证明本地仓库被初始化。当前目录也会被认为是仓库

    >git add file1 file2 file3    #会把file1到file3备份到缓存区,提前创建了file{1..3},每个的内容都是字符串:test

    >git status    #查看本地仓库的状态,有哪些已经上传缓冲区那些文件没有上传缓冲区

    >git diff --cached    #查看缓冲区哪些文件被修改了,

    >git diff     #显示的是已经修改但是没有加到缓冲区去的内容

    >git commit -m "add 3 files"    #git commit把缓冲区的内容提交到本地仓库,-m参数表示添加备注,提交以后缓存区清空

    >git commit -a -m "add 3 files"    #把本地的修改(还没添加到缓冲区)和缓冲区的修改都递交到本地仓库,但是本地新建的文件夹例外。

    >git rm file4 --cached    #把之前已经上传的file4从缓存区删去(并不会从本地删除),--cached参数大约是表示缓存区的意思

    >git remote add haha http://xxx.xxx/xxx    #本地仓库与远程仓库相联系,远程主机名叫haha,解除联系用git remote rm +仓库名

    >git remote -v    #查看自己的云端仓库相关信息

    >git push haha master   #将本地仓库同步到自己的远端服务器:haha, 但是需要认证,输入服务器名字和密码,

3,分支与合并:

    git项目管理默认有一个主要的程序叫master,很多branch分支

    >git branch lianxi1    #创建一个叫lianxi1的分支master

    >git branch    #查看自己有那些分支,此时显示lianxi1和*master,星号表示你当前在哪个主分支或者分支中

    >git checkout lianxi1    #切换自己的位置到lianxi1分支,分支下创建文件夹的话,切换到master以后,创建的文件就不可见了

    已知有一个文件test2,在master主分支中的内容是hello master  ; lianxi1分支中增加了一句: i am branch lianxi1,如果想让两个文件合并,需要先切换到master主分支,再执行:

    >git merge -m "merge 2 files"  lianxi1    #首先保证分支是已经提交过的最新的,当前分支是master主分支,就可以合并lianxi1分支中的修改到主分支,假如有一个文件test2在lianxi1中和master中的 都被分别修改了,并且修改不一致,合并就会报错,此时直接暴力合并再vim修改test2就可以了,或者直接自己有意避免这个问题。

    >git branch -d lianxi1    #删除一个名叫lianxi1的分支

    >git reset --hard HEAD^    #回到合并之前的状态

4,git日志

    >git log    #显示提交(commit)的历史,加上--stat参数会显示详细内容

    >git log --pretty=oneline    #把提交日志文件输出的格式变成一行一行的那种

    

    

   

猜你喜欢

转载自www.cnblogs.com/0-lingdu/p/9478730.html