1、Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
是Linus Torvalds 为了帮助管理Linux 内核开发而开发的一个开放源码的版本控制软件。
与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
2、相应的git介绍、安装及配置信息见runoob
此处只对git的工作原理及相应简单命令作相应说明(当然只是个人理解哈!详情见上述链接)
3、Git的工作区、index库(缓冲区)和版本库,需要注意上图各命令。
如:git add * 将工作区文件上传到缓存区,*是指定文件 ,git add . 将所有文件上传缓存区
git checkout 分支名 切换分支
4、当然是命令的介绍
git init 会使用当前目录下作为Git库,并生成一个.git目录
git status –s 简单查看上次提交后是否有修改
git clone <repo> <directory> 从现有Git库中拷贝项目到指定目录
git diff
git diff 尚未缓存的改动
git diff –cached 查看已缓存的改动
git diff HEAD 查看已缓存的与未缓存的所有改动
git diff –stat 显示摘要而非整个diff
git commit 将缓存区内容添加到仓库中
git commit -a 将工作区内容跳过缓存区,直接由工作区添加到仓库中
git commit -m “hint”将修改后的文件添加到仓库中(hint提示信息)
git reset HEAD – filename 当提交到缓存区后,取消其中一个缓存,即取消的缓存回到了工作区。
git rm
git rm <file> 从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。
git rm –f <file> 删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项-f。
git mv 用于移动或重命名一个文件、目录、软连接
git branch (branchname) 创建分支命令,新建分支会将所在分支的快照拷贝过去
git branch –D (branchname) 删除指定分支
git ckeckout (branchname) 切换分支命令(会用该分支的最后提交的快照替换你的工作目录的内容)
git checkout –b <branchname> 创建新的分支并切换到该分支上(分支间的文件,互不搭)
git merge <branchname> 将指定分支快照合并到所在分支上
当然,存在着合并冲突(两分支文件名相同,但内容均有所改变时,合并就会出现冲突),此时,利用git diff 再去文件中修改冲突,最终利用git add . 和git commit,即合并成功。
查看提交历史
git log 或git log --oneline
打标签,即给提交的快照,带上标签。
git tag –a v1.0
git tag 查看标签
git tag –a <tagname> -m “tyliang标签” 指定标签信息命令
git tag –s <tagname> -m “tyliang标签” PGP签名标签命令(不懂哈)
git remote 查看当前的远程库
git remote –v
git remote add [origin_alias] [远程库地址] 本地分支绑定到远程库中
git push –u [origin_alias] [local_branch] 将本地分支的内容推送至远程库
git fetch [alias]从远程库[alias]下载新分支与数据
git merge [alias]/[branch] 然后将远程库[alias]的下载数据合并到当前分支[branch]