Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git 与 SVN 区别点:
-
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
-
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
-
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
-
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
-
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git 完整命令手册地址:http://git-scm.com/docs
创建新仓库
创建新文件夹,打开,然后执行 ,以创建新的 git 仓库
git init
拉代码
git config --global user.name "用户名" git config --global user.email "邮箱" git clone 地址
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录
,它持有实际文件;第二个是 暂存区(Index)
,它像个缓存区域,临时保存你的改动;最后是 HEAD
,它指向你最后一次提交的结果。
提交代码:
添加和提交
提出更改(把它们添加到暂存区)
git add <filename>
git add *
实际提交改动,此时改动已经提交到了 HEAD,但是还没到你的远端仓库
git commit -m "代码提交信息"
推送改动
将这些改动提交到远端仓库,可以把 master 换成你想要推送的任何分支
git push origin master
查看当前本地文件信息
git status
如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加,如此你就能够将你的改动推送到所添加的服务器上去了。
git remote add origin <server>
分支
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
创建一个叫做“feature_x”的分支,并切换过去
git checkout -b feature_x
切换回主分支
git checkout master
再把新建的分支删掉:
git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的
git push origin <branch>
更新与合并
要更新你的本地仓库至最新改动,执行
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行
git merge <branch>
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,你可以使用如下命令预览差异
git diff <source_branch> <target_branch>
替换本地改动
假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动,此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
git checkout -- <filename>
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它
git fetch origin
git reset --hard origin/master
提交代码也可以用 git gui here
提交代码前,要先更新代码!!! Git Pull是从远端拉取最新的代码,Git Fetch是从远端拉取最新的分支,Git Push是将本地仓库的代码提交到远端
准备工作:安装git,已切换到开发分支
1在git克隆的本地项目文件夹下右键选择git GUI Here ,会进入如下界面
2,点击左上角区域的文件图标,可以将其添加到暂存区(左下角区域),然后在左下角点击文件查看文件更改情况(点击图标,会让其移除暂存区),如果左下角所有的文件更改都是没问题的,可以在commit Message区域添加描述
3,选择工具栏中的romote --》 fetch Form--》orgin,实现pull的效果,保证多人合作的版本统一(此处顺序一定是先commit然后在pull,先pull会覆盖本地更改的代码)
4,点击右下角的push按钮就可以提交了
参考:https://www.cnblogs.com/dglblog/p/9322310.html
也可使用此文: https://www.runoob.com/w3cnote/git-gui-window.html
https://www.cnblogs.com/xuwenjin/p/8573603.html