初识Git
Git
镜像下载:http://npm.taobao.org/mirrors/git-for-windows
Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多
Git CMD:windows风格的命令行
Git GUI:图形界面的Git,不建议使用
Git配置
git config -l #查看配置
git config --system --list #系统配置,配置文件路径 D:\git\Git\etc\gitconfig
git config --global --list #当前用户配置 C:\Users\Administrator\.gitconfig
修改配置
git config --global user.name "ming"
git config --global user.email "7777@qq.com"
工作原理
工作区域
Git本地有三个工作区域
- 工作目录(Working Directory)
- 暂存区(Stage/Index)
- 资源库(Respository或Git Directory)
- 远程的git仓库(Remote Directory)
git add files # Working Directory-->Stage(index)
git commit # Stage(index)-->History
git push # History-->Remote Directory
git pull # Remote Directory-->History
git reset # History -->Stage(index)
git checkout # Stage(index)-->Working Directory
工作流程
- 在工作目录中添加,修改文件
- 将需要进行版本管理的文件放入暂存区域
- 将暂存区域的文件提交到git仓库
git管理的文件的三种状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(commited)
项目搭建
本地仓库搭建
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库
-
创建全新的仓库,需要用Git管理的项目的根目录进行
#在当前的目录新建一个Git代码库 git init
执行后,可以看到,在项目目录里多出了一个.git目录,关于版本等的所有信息都在这个目录里面
-
克隆远程仓库
#克隆一个项目和它的整个代码历史(版本信息) git clone [url]
基本操作指令
文件四种状态
版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前在什么状态,不然可能提交了现在还不想提交的文件,或者要提交的文件没提交上
-
Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过git add 状态变为Staged
-
Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改,而变为Modified,如果使用git rm移出版本库,则成为Untracked
-
Modified:文件已修改,仅仅是修改,并没有进行其他的操作,这个文件也有两种去处,通过git add可进入暂存staged状态,使用git checkout则丢弃修改过,返回到Unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改
-
Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified
查看文件状态
#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
#添加所有文件到暂存区
git add .
#提交暂存区中的内容到本地仓库,加上提交信息
git commit -m "message"
忽略文件
有些时候我们不想把某些文件放入版本控制,比如数据库库文件,临时文件,设计文件等
在主目录下建立.gitignore文件,文件有如下规则:
-
忽略文件中的空行或以“#”号开始的行会被忽略
-
可以使用liux通配符,例如*代表任意多个字符,?代表一个字符,方括号[abc]代表可选字段范围,大括号{string1,string2}代表可选的字符串
-
如果名称的最前面有一个感叹号!代表例外规则,将不被忽略
-
如果名称的最前面有一个路径分隔符/,表示要忽略的文件在此目录下,而子目录下的文件不被忽略
-
如果名称的最后面试一个路径分隔符,表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)
#为注释 *.txt #忽略所有.txt结尾的文件 !lib.txt # 但lib.txt除外 /temp #仅忽略项目根目录下的TODO文件,不包括其他目录temp build #忽略build/目录下的所有文件 doc/*.txt #忽略doc/notes.txt 但不包括doc/server/arch.txt
使用码云
-
注册登录码云,完善个人信息
-
设置本机绑定SSH公钥,实现免密码登录
#进入 c:\user\administrator\.ssh目录 #生成公钥 ssh-keygen -t rsa #一直按回车 生成id_rsa id_rsa.pub 两个文件
-
将公钥信息public key 添加到码云账号中即可
-
使用码云创建一个自己的仓库
-
git remote add origin [url] //关联本地仓库与远程仓库
-
git push -u origin master //更新
IDEA集成Git
-
新建项目,绑定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]