Git
来源:互联网 发布:优化经济发展环境 编辑:程序博客网 时间:2024/06/06 09:48
Git
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。分布式版本控制系统。
1安装与配置
1.1下载与安装
下载地址:https://git-for-windows.github.io
1.2配置个人信息(名字与邮箱)
使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名。
git config --global user.name "Your Name"
git config --global user.email"email@example.com"
查看是否配置成功,用命名git config -l
2 git的使用(命令行)
2.1创建本地仓库
git init:把当前目录变成一个git仓库,并自动创建master分支。
以上命令会在当前目录下创建了一个.git 隐藏目录,它就是所谓的Git 仓库。生成仓库后的目录就不是普通的文档目录了,我们将其称为工作区,所以工作区中都包含一个git仓库,而一个git仓库中又包含一个暂存区和一个版本库。
2.2工作区与版本库概念
Git有三大区:工作区、暂存区、版本库。
1.工作区(Working Directory):电脑中的目录。
2.仓库:工作区有一个隐藏目录.git,这个不算工作区,而是Git仓库:
暂存区(stage/index):一个临时的存储区域;
版本库 (Repository)。
2.3添加文件到版本库的步骤(重点)
1.创建(修改)文件:往工作区中添加/修改文件
2.添加到暂存区:git add <file>,把修改存放到暂存区:
git add 文件夹:把文件夹下的所有修改添加到暂存区;
git add .:添加所有修改到暂存区。如果想过滤部分文件,请查看 过滤清单。
3.提交到版本库:git commit -m "备注":
使用git commit 命令可将暂存区的内容提交至版本库中,这个过程称为提交,每一次提交都意味着版本在进行一次更新(会自动生成一个commit id)。PS:如果不写-m回车会进入vim编辑界面,退出方法:输入:q => 回车
2.4其他辅助命令
查看仓库变更状态:git status:用status查看仓库会有几种状态:untracked、unstaged、uncommitted 。
3 git远程仓库
3.1关联本地仓库与远程仓库
有两种方式关联:ssh和https两种协议,https比较简单,但提交时每次都分输入用户名和密码,如使用https协议,直接跳过以下第1、第2步。
1.创建SSH Key:ssh-keygen -t rsa -C 'email地址':
以上命令会在当前window用户的目录里创建.ssh目录,里面有id_rsa(私钥)和id_rsa.pub(公钥)两个文件。
2.添加SSH Key到Git服务器 :添加完成后测试线路是否连通:ssh -Tgit@github.com
3.建立本地仓库与远程仓库的连接
方式1:适用于先有本地仓库,后有远程仓库的情况:
格式:git remote add 远程仓库名 远程仓库地址 。
git remote add origin git@github.com:xxx/view.git
PS:删除远程仓库连接:git remote remove 远程仓库名。
方式2:克隆(适用于先有远程库,后有本地仓库的情况):
格式:git clone 远程仓库地址
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
3.2推送到远程仓库(重点)
git push
格式:git push 远程仓库名 本地分支名:远程分支名
把本地分支内容推送到远程分支(远程分支名省略表示推送到与本地分支相同的分支)
git push origin master
3.3拉取与合并
同步本地与远程仓库
1.git pull
格式:git pull 远程仓库名 远程分支名:本地分支名
拉取远程分支内容到本地并与本地分支进行合并(本地分支名省略表示合并到与远程分支名相同的分支)
git pull origin master
2.git fetch:拉取远程分支内容。
3.git merge:合并分支内容。
git pull origin master
//以上命令相当与以下命令等效
git fetch origin master
git merge origin/master
**push和pull后的分支顺序格式:<来源地>:<目的地>
4版本退回
4.1回退命令:git reset
1.回退到上一个版本:git reset --hard HEAD^
2.回退到指定版本:git reset --hard [commit id] 版本号没必要写全,前几位就可以了,Git会自动去找。
3.回退指定文件:git reset --hard [commit id] <file>
4.参数说明:
· –hard:工作区、暂存区、版本库的文件同时回退
· –mixed:暂存区、版本库的文件回退(默认)
· –soft:仅仅回退版本库中的文件
4.2当前版本:HEAD
上一个版本:HEAD^,上上个版本:HEAD^^…依此类推,前100个版本:HEAD~100
4.3 git log显示提交日志
· –pretty=oneline(显示简要信息id+备注)
· –graph(图形显示版本走向)
· –abbrev-commit(显示简写的id)
· 一大串类似3628164…882e1e0的是commit id(版本号)
4.4 git reflog 查看命令历史
4.5撤销文件修改
· git checkout -- <file>:放弃工作区的修改
· git rm --cache <file>:撤销暂存区的修改
· git reset HEAD <file>:撤销暂存区的修改
4.6对比文件
git diff <file>
更好的为使用 Beyond Compare软件
5 git过滤配置(过滤清单)
一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。
#过滤dist根目录下的文件(不过滤其他目录下的dist文件夹)
/dist
#过滤所有mtk文件夹
mtk/
#过滤所有.zip文件
*.zip
#过滤某个具体文件
/mtk/do.c
· #为注释
· 很简单吧,被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。
6分支操作
6.1 git branch 分支名
创建分支
6.2 git checkout 分支名
切换分支。以上两步合并为:git checkout -b分支名。
6.3 git branch
列出所有分支,当前分支前面会标一个*号。
6.4 git merge 分支名
合并分支。
1. git merge dev:把dev分支合并到当前分支。
2. Fast-forward:快速合并
禁用快速合并: –no-ff (保持分支信息)
3. 合并要创建一个新的commit,所以加上-m参数,把commit描述写进去
6.5 git branch -d 分支名
删除分支。强行删除,需要使用命令git branch -D feature-vulcan
6.6获取远程分支
1.先获取(git fetch)
2.然后在本地创建一个同名分支,并将远程分支映射到此分支(git branch dev origin/dev)
6.7 上传远程分支
Git push origin 分支名
7github托管页面
github托管页面,让项目能通过域名访问,需要以下设置
1)创建一个gh-pages分支,并push到远程仓库。
2)访问url:http://账户名.github.io/仓库名。具体地址需要在setting中确定。
3)绑定域名。创建一个CNAME文件,并写入域名地址(需要修改dns设置)。
- git
- git
- Git
- Git
- Git
- Git
- git
- git
- Git
- GIT
- git
- GIT
- Git
- git
- git
- Git
- GIt
- git
- tomcat服务一---tomcat部署及日志切割
- python2.x环境下unicode乱码转中文显示的2种解决方案总结
- sort-colors
- Java遍历Properties的所有的元素,四种方法详细总结的代码实例
- codevs 2452 扫雷
- Git
- linux dirfd 把目录转成文件描述符,把目录信息刷进磁盘
- .net连接MySql数据库
- 关于在一个app里使用多个风格
- 一. python开发基础
- Java中BufferedReader与Scanner读入的区别
- HashMap底层数据结构--面试
- 灵活运用 SQL SERVER FOR XML PATH
- [计蒜客16959] Colored Graph [2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 J]