Git是什么?git给我们管理项目带来了哪些便利

来源:互联网 发布:项羽坑杀20万秦军 知乎 编辑:程序博客网 时间:2024/04/28 22:20

首先你得有Git工具 , 赶紧去下载一个试试吧.


Git (SVN  TFS/微软的)

一个版本控制工具 : vcs
将项目不同时间点的版本,通过Git这个工具保存起来;进行版本的管理,
将来可以通过这个工具,很容易就能查看或者回滚到某一个指定的版本;

Git 最早是为了管理 linux 系统代码而设计的(免费开源的版本控制软件,性能非常高) // 开源免费
linux 的设计者 : 林纳斯*托瓦兹  

Git 使用方式: 1. 命令  2. 图形化界面
管理项目版本/分布式存储方式,不需要服务器可以运行/源码发布方便

两种版本控制方式的介绍:
1.集中式 版本控制工具 (代表软件:svn)
//必须依赖与某一台服务器 ,多个开发人员从同一台服务器中获取最新的
代码,也是将修改之后的代码提交到这一台服务器;没有网络就无法进行
代码的提交和获取了!

2.分布式版本控制工具 (代表:git)
非常的高效! 不依赖服务器,可以本地开发,本地提交,如果是多人合作开发也是需要服务器来进行代码的共享;

shell(壳) // 区别于:核

Git工具最早是在 linux 系统下面的一个工具;安装这个Git工具相当于在window系统下可以执行Linux系统的一些 shell 命令了; (相当于linux工具的一个移植版本)

shell 可以代指一个工具,或者是脚本语言;可以接受用户的命令来执行某个操作!

git的基本使用指令:

cd : change directory  目录

clrar :  (到下一屏)清空当前窗口内容// reset(全部清空)

mkdir : 创建文件夹

ls : 列举列表 (list)

ls -a : 查看所有目录

ls -l : 列举当前信息

pwd : 打印当前路径

touch : 触摸 创建文件

cat : 查看当前文件的内容(全部内容);按q键退出查看!

less : 文件名称 (查看文件部分内容 按空格键查看下一页) (按q键退出查看!)

rm index.html //删除一个内容

rmdir //删除一个空的文件夹(有内容删除不掉)

rm -r -f  //递归删除

rm -r js //递归删除js文件夹中的文件

mv index.html css/pipixia.html(移动一份到css中);有名字原先的还在

mv index.html css/ (剪切到css中)

cp 复制

______________________________________________

vi编辑器:
3中模式:命令模式  插入模式  底行模式
输入vi : 命令行模式
输入 i或a 到输入模式
esc退出到命令行模式
:w 保存;   :q  退出

命令模式:
ZZ保存并退出
dd删除当前行
p 粘贴
yy 复制当前行
ctrl+b 向前翻页
ctrl+f 向后翻页

:q! 不保存 强制退出
:e! 保存到上一次保存的状态
:set nu 展示行号

______________________________________________

说了这么多,来看看到底哪些是工作中常使用到的了:

1. git init   项目的初始化 // 告诉git让他来管理当前目录;会创建一个.git目录(不要改动)
2.git status   查看状态
3. git add 文件路径 //告诉git来管理制定文件,还没有进行真正的存储,仅仅是将指定文件暂存,git会将其放到git的暂存区中

4.git add -A //将所有文件,放到暂存区;
5.git rm--cached 文件路径 //告诉移除暂存区
6.git commit -m '提交信息'; // 将文件由暂存区放到仓库中,提交后,真正被git进行管理了!
7.git log //用来查看所有的提交的信息

8.git reset --hard 版本号 // 回退到制定的版本

所以要记住以上的提交到git仓库中的基本命令!

管理仓库最基本步骤:
git init ==> git add -A ==> git commit -m '提交日志信息'
三个分区: 制定文件暂存 /  放到暂存区  / 放入仓库 
每一次 commit(提交) 都是一个版本

忽略文件的说明:
1.需要在项目根目录中手动创建 名为: .gitignore 的文件;
2.在 .gitignore 文件中 ,将不需要被管理的文件,配置进来 ;比如 /.gitignore 或 /*.txt  // 将自己也配进来 *.txt是将所有以txt后缀的忽略掉

HEAD: 表示git仓库中当前版本.
git init 命令初始化后 会有主分支 master
初始化 git 仓库的时候,git会帮我们自动创建一个master分支

1.创建分支:
git branch 分支名称:git branch dev 表示创建dev分支
git checkout -b dev 创建分支的同时切换到dev分支

我们是在初始化项目以后创建的dev分支,dev分支就有了主分支以前提交的所有内容. dev分支和主分支的结构一模一样

2.查看分支:
git branch 表示查看分支, *表示当前分支

3.切换分支:
git checkout 分支名称
git checkout dev 表示到 dev 分支


4.合并分支:
git  merge 分支名称
git merge dev 表示 dev 分支中的内容 合并到当前分支;相当于在主分支中做的操作! // 即在dev分支中做的所有操作在主分支中都能看到

5.删除分支:
git branch -d 分支名称

合并分支以后才能看到其他分支添加的内容
______________________________________________

步骤:
git branch dev ==> git checkout dev==> git -A ==> git commit -m '分支内容'==> git checkout 'master' ==>  git merge dev //合并完成
在两个分支中,同时修改了一个文件的额内容,此时,就会造成合并冲突,如果发生了合并冲突,需要手动解决;
1.决定保留哪个分支中的内容;
2.重新提交;


一. 如何将代码提交到远程仓库(下面以github为例):

1.在本地创建仓库

2.git push [github仓库地址] master ==>输入用户名  然后弹出密码   ==> 完成

二. 如何获取仓库中的文件:

如果是第一次获取GitHub
git clone 仓库地址 文件夹名称
如果不是第一次获取:
git pull 仓库地址 分支名称 (拿文件)

多个分支的处理:
github 中可以将本地仓库的代码提交到任何一个分支中
1.只能将本地存在的分支提交到远程仓库(github中),如果是本地代码提交到一个不存在的仓库中,会报错(本地没有的分支)

2. git push http://... master
不管当前处于什么分支 ,提交的时候,都是将master分支中的内容提交到远程仓库的 master 分支

3. git pull http://...git master
如果当前处于 dev 分支 ,那么会将master 分支中的内容,与dev分支中的内容合并,如果是同一个分支,那么仅仅是内容更新,而不牵扯到多个分支的合并

最佳实践:先获取在提交,即:先 pull 再  push ;

简化操作指令 :
git remote add blog https://....  //指的是 : 将blog 代替 http://...  这个网址 , 方便记忆与书写

好了Git的基本用法差不多都在这里,很简单,赶紧实践一下吧,觉得有用记得点个赞

个人日记 , 纯手打 ,欢迎指正 微笑!

1 0
原创粉丝点击