Git
版本控制
什么是版本控制,版本迭代,新的版本
它是一种在开发的过程中用于管理我们的文件,目录或工程内容的修改历史,方便查看更改历史记录,备份一遍恢复到以前的版本。
可以实现多人协同开发;追踪和记载一个或者多个文件的历史记录;组织荷包混你的源代码和文档;统计工作量;并行开发,提高开发效率,减轻开发人员的负担,降低错误;
多人开发必须使用版本控制;
主流的版本控制:Git,SVN,CVS,VSS
本地版本控制
适合个人使用
集中版本控制
协同开发者从服务器上同步更新或上传自己的修改;害怕服务器崩盘,或者不联网的话无法从服务器上下载;
分布式版本控制(Git)
是目前世界上最先进的版本控制系统;
每个人都拥有全部的代码,可以从本地就可以看见,保持效率,不会因为服务器损坏或者断网的影响;
Git和SVN的区别
SVN是集中版本控制,需要中央处理器而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件;
常用的Linux命令
1)cd : 改变目录。
2)cd . . 回退到上一个目录,直接cd进入默认目录
3)pwd : 显示当前所在的目录路径。
4)ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
5)touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6)rm: 删除一个文件, rm index.js 就会把index.js文件删除。
7)mkdir: 新建一个目录,就是新建一个文件夹。
8)rm -r : 删除一个文件夹, rm -r src 删除src目录
9)mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。
10)reset 重新初始化终端/清屏。
11)clear 清屏。
12)history 查看命令历史。
13)help 帮助。
14)exit 退出。
15)#表示注释
Git配置
所有的配置都会存在本地文件中,查看配置 git config -1
首先必须要配置用户和密码
git config --global user.name "kuangshen" #名称
git config --global user.email 24736743@qq.com #邮箱
Git基本原理
本地有三个区域:工作目录,暂存区,资源库本地文件通过git add 命令添加到暂存区,然后通过git commit 添加到本地文件,如果想添加到远程文件是使用git push;
工作流程:
在工作目录中修改增加文件,然后添加到暂存区,最后提交到git仓库;
Git本地创建
git in和git clone(克隆网上的文件)
忽略文件
#为注释
*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
IDEA中集成Git
新建项目,绑定git:直接将文件拷贝即可
修改文件,使用idea和git:添加到暂存区,commit提交,push到远程仓库
测试
Git分支
常用的分支命令
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交,选择要保留需要保留的代码