1、Git的下载和安装
git的安装地址 下载好以后直接安装,一直下一步即可(ps:可以自己选择安装目录,也可默认安装)
2、Git的环境配置
git config --global user.name "用户名"
git config --global user.email "邮箱" //用户名和邮箱任意写,相当于上传代码时的一个签名
通过上面命令设置的信息存放在C盘用户目录的.gitconfig文件中
3、Git仓库的创建方式
-
本地创建仓库
git init //在你要初始化的仓库文件夹下打开Git Bash窗口,输入该命令创建仓库
-
从远处clone仓库
4、Git的一些概念
-
版本库:在创建的仓库中有一个.git文件夹(隐藏文件夹),版本库中存储了很多配置信息,日志信息和文件版本信息等
-
工作目录(工作区):包含.git文件夹的就是工作目录,主要存放开发的代码
-
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区(stage),是一个保存临时修改文件的地方
5、Git常用命令
-
git status [-s] 查看文件状态, -s使输出信息更加简洁
-
git add 文件名 将未跟踪状态的文件增加到暂存区(已暂存状态)
-
git reset HEAD 文件名 将添加到暂存区的文件还原回未跟踪状态
-
git commit [-a] -m "日志信息" 将暂存区的文件提交到本地仓库(要提交到仓库的文件必须先添加到暂存区),[-a]可以未跟踪的文件先加到暂存区再commit到仓库
注意:如果直接输入git commit会弹出一个文本框在vim下进行日志信息的输入(i进入编辑状态,Esc :wq退出并保存)
-
git rm 文件名 删除工作区的文件,并提交到暂存区(仓库中此时仍然有,需要commit后才能删除仓库中的文件)
-
git log 查看日志记录
-
git remote [-v] 查看已关联的远程仓库, -v显示详细信息
-
git remote add 远程仓库短名 url 将本地仓库关联远程仓库,[shortname]可以自定义,也可以叫origin,[url]远程仓库的地址
-
git clone url 将远程仓库的所有文件抓取(fetch)到本地
-
git remote rm 远程仓库短名 移除本地仓库关联的无用远程仓库
-
git fentch 远程仓库短名(origin)/分支名(master) 从远程抓取到本地仓库(不会合并到工作目录下,需要手动合并到工作区)
-
git merge 远程仓库短名(origin)/分支名(master) 从本地仓库合并文件到工作区
-
git pull 远程仓库短名(origin)/分支名(master) 从远程仓库拉去文件,并自动合并(merge)到工作区
注意:如果本地仓库是自己本地创建的仓库,并且在拉取得时候工作区有文件会拉取失败,需要追加参数 --allow-unrelated-histories
-
git push 远程仓库短名(origin) 分支名(branch) 推送分支到远程仓库
Tips:如果想将一些文件添加到忽略列表,可在工作目录下创建.gitignore的文件(文件名称固定),在该文件中配置要忽略的文件.Windows下无法创建.gitignore的文件,所以要在Git Bash下使用touch .gitignore进行创建
6、Git分支
-
git branch [-r] [-a] 查看本地分支,[-r]查看远程,[-a]查看本地、远程所有分支
-
git branch 分支名 创建本地分支,会在原分支基础上进行创建
-
git checkout 分支名 切换分支
-
git push 远程仓库短名(origin) [分支名] 推送本地分支到远程仓库
-
git merge 分支名 合并分支(合并分支到当前你输入命令的分支)
Tips:在分支合并时,如果两个分支都修改了同一个文件,就会出现冲突(conflict),需要我们手动的修改冲突文件来解决冲突,并使用git add [冲突文件名]告诉Git冲突已经解决
Tips:在分支合并时,如果两个分支都修改了同一个文件,就会出现冲突(conflict),需要我们手动的修改冲突文件来解决冲突,并使用git add 冲突文件名告诉Git冲突已经解决
-
git branch -d 分支名 删除本地分支,如果删除的分支中有新修改的文件未提交到仓库使用-d删除不掉,如果你想强制删除,使用-D
-
git push 远程仓库短名 -d 分支名 删除远程分支
7、Git标签
标签和分支的区别:分支是动态变化的,标签是开发过程中阶段性的一个标记,随着开发不断进行,可以随时恢复到创建标签时的状态,但 不能回到分支的某个状态
-
git tag 列出所有标签
-
git tag 标签名 新建标签
-
git show 标签名 查看标签信息
-
git push 远程仓库短名 标签名 提交标签到远程仓库(创建的标签可直接推送到远程仓库中)
-
git checkout -b 分支名 标签名 检出标签到分支中,分支名建议是新的分支(未创建的分支)
-
git tag -d 标签名 删除本地标签
-
git push 远程仓库短名 :refs/tags/标签名 删除远程仓
8、忽略本地文件
Git只能忽略没有被版本控制的新建文件,当被版本控制后需要变更为未跟踪状态才能进行忽略。
忽略的两种方式:
- .gitignore文件,在里面配置你要忽略文件的位置,并同步到远程仓库
- .git/info/exclude文件配置忽略的文件,此配置忽略自己本地要忽略的文件,不会同步到远程仓库