Git
版本控制
版本控制
(Revision control)是一种在开发过程中用户管理对文件,目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术
Git与SVN的区别
SVN
是集中式版本控制器,版本库是集中放在中央服务器的;工作时,需要从中央服务器得到最新的版本;工作完成后,需要把工作内容推送到中央服务器。需要联网
Git
时分布式版本控制系统,没有中央服务器,每个电脑都是一个完整的版本库,不需要联网。
Git是世界上最先进的分布式版本控制系统。
Git安装
Git Bash:Unix和Linux风格的命令行,使用最多,推荐
Git CMD: Windows风格的命令行
Git GUI : 图形界面的Git,不建议初学者使用
基本的Linux命令
cd
:改变目录cd ..
回退到上一个目录,直接cd进入默认目录pwd
显示当前所在的目录路径ls(ll)
/ls
都是列出当前目录中的文件,(ll)列出的内容更为详细touch
新建一个文件rm
删除一个文件mkdir
新建一个目录(新建一个文件夹)rm -r
删除一个文件夹,rm -r src 删除src目录mv
移动文件,mv index.html src ;index.html是我们要移动的文件;src是目标文件夹clear
清屏reset
重新初始化终端/清屏history
查看历史命令help
帮助exit
退出#
注释
Git配置
查看配置git config -l
查看不同级别的配置文件:
#查看系统config
git config --system --list
#查看当前用户(global)用户
git config --global --list
系统配置文件D:\devSoftware\Git\etc
添加name和email
Git基本理论
Workspace
工作区,用来存放代码的地方
Index/Stage
暂存区,用户存放临时改动,事实上是一个文件,保存即将提交到文件列表的信息
Repository
仓库区(或本地仓库),存放数据的位置,里面有提交的所有版本的数据。其中Head指向最新放入仓库的版本
Remote
:远程仓库,托管代码的服务器
Git项目搭建
本地仓库搭建
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库
1.创建本地仓库
git init
2.克隆远程仓库
git clone url
Git文件操作
文件4种状态
版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前处于什么状态,否则会出现提交了现在还不想提交的文件,或者要提交的文件没有提交上。
Untracked
未跟踪,此文件在文件夹种,但并没有加入到git库中,不参与版本控制,通过git add
状态变为Staged
Unmodify
文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改,则变为Modified
,如果使用git rm
移出版本库,则成为Untracked
文件
Modified
文件已修改,没有进行其他操作;通过git add
可进入暂存staged
状态,使用git checked
则丢弃修改,返回到Unmodify
状态,git checked
即从库中取出文件,覆盖当前修改
Staged
暂存状态,执行git commit
则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify
状态,执行git reset HEAD filename
取消暂存,文件状态为Modified
查看文件状态
#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
#添加所有文件到暂存区
git add .
#提交暂存区内容到本地仓库 -m 信息
git commit -m
忽略文件
在主目录下建立.gitignore
文件
#为注释
*.txt #忽略所有 .txt结尾的文件,上传时不会选中
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其他目录temp
build/ #或略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
使用码云
添加SSH公钥
使用码云创建一个自己的仓库
IDEA集成Git
- 新建项目
- 绑定git
把远程仓库复制拷贝到项目目录中
修改文件,使用IDEA操作git
- 添加到暂存区
- commit提交
- push到远程仓库
Git分支
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,
#新建一个分支,并切换到分支
git checkout -b [branch]
#合并指定分支到当前分支
git merge [branch]
#删除分支
git branch -d [branch-name]
#删除远程分支
git push origin --delete [branch-name]
#新建一个分支,并切换到分支
git checkout -b [branch]
#合并指定分支到当前分支
git merge [branch]
#删除分支
git branch -d [branch-name]
#删除远程分支
git push origin --delete [branch-name]