给大家推荐一个廖雪峰老师讲解git的网站:

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

一、SVN与git的区别

SVN是“集成式”管理方式,所有的“版本控制器”都在中央服务器上,每个开发人员的的计算机都要连接到中央服务器上才能进行合作开发。开发人员一般只能在公司才能进行开发(因为中央服务器在公司),局限性较大。 
git是“分布式“管理方式,开放人员的每台计算机上都有一个“版本控制器”,每个开发人员把自己开发的模块的代码都上传到github上(充当一个远程仓库,类似与“中转站”的作用),其他人可以从github上下载相应的代码进行开发。git方式不需要中央服务器,开发人员可以做到“随时随地”的开发。(因为github是一个公用的平台,只要在有网的地方,就可以登陆去下载相应的代码版本)。

二、git工具的安装 
1.打开github的网站 https://github.com/ ,登陆github(如果没有github账号的话,要先去注册一个,注意:邮箱和设置的用户名尽量是自己经常用的,而且用户名不要太复杂,因为在git命令里面会用到)。 
2.创建一个”仓库(create repositories)“,给仓库起一个名字,比如”drag“(一般名字和自己项目的功能有关,尽量做到”见名知义“)。 
3.可以”勾选上“ Readme,(也可以不勾选),这是对你创建的项目的一个简单介绍。 
4.把自己创建的项目(比如上面的drag)从github上,下载到本地,以便在本地进行开发。通过以下的命令进行实现: 
假如你想把你的项目放在E盘的myProjects文件夹下: 
cd E: (按回车) 
cd myProjects git clone url (按回车,这里的url是你在github上创建项目时,自动生成的一个网址,在github上可以找到。) 
这个命令执行完毕后在myProjects文件夹下会有一个drag文件夹,一个readme文件(或许没有) 
5.设置”贡献者“,贡献者就是指参与该项目开发的人(在开发工程中,如果你对代码进行了修改,别人能够查看你做了哪些修改),设置贡献者的git命令如下: 
git config –global user.name “注册时起的用户名” 
git config –global user.email “注册时的邮箱” 
贡献者设置完成后,可以通过git config –global uer.name 命令查看设置的用户名,git config –global user.email 查看设置的邮箱。

三、git的主分支和三个区的介绍 
1.主分支master:主分支一般是开发过程中”稳定“一个部分,为了防止在开发过程中出现意外把”主分支“破坏掉。一般会另开一个”分支“(非主分支,比如起名next),在next分支上进行开发,开发完成后,再合并到主分支master上。 
2.git的三个区:工作区、暂存区、版本区。 
工作区:drag文件夹下的所有文件 
暂存区的左用: 
(1).作为过渡层 
(2).避免误操作 
(3).保护工作区和版本区 (内容丢失后,可以从”暂存区“找回) 
(4).分支处理 (比如:把正在进行开发的分支上的内容暂时放到”暂存区“,去修改其他分支上的bug) 
版本区:主分支”master” 
三个区之间的联系:一般是在”工作区“进行开发,然后提交到”暂存区“,再有”暂存区“提交到“版本区” 
工作区——>暂存区———->版本去 
四、git工具的常用命令 
1.git status 查看“工作区”和“暂存区”的状态 
2.git add filename 把文件从“工作区”添加到“暂存区” (工作区中还有该文件) 
3.git add . 把工作区下的所有文件都添加到暂存区 
4.git commit filename 把文件从“暂存区”提交到“版本区” 
5.git commit 把暂存区中的所有文件都提交到“”版本区 会弹出一个记事本,让我们添加注释 
6.git commit -m “自己写的一些注释” 我们直接添加注释,这样不会弹出一个记事本去添加注释 
7.git reset HEAD filename 把文件从“暂存区”撤回到“工作区” 
8.git commit -a -m “自己写的注释” 把文件从“工作区”直接提交到“版本区”(本质上没有跳过暂存区,-a其实就是添加到暂存区) 
正常的流程是:工作区中的文件发生改变(git status命令可以查看)–>git add filename(填到暂存区)–>git commit filename(提交到版本区)–>git push origin master(把版本区中的文件同步到github上)–>刷新你的github账户就可以看到新添加的文件

五、对比命令(主要用来查看工作区、暂存区、版本区三个区之间的文件中的代码有什么不同之处) 
1.git diff 查看工作区与暂存区文件之间的差异 
2.git diff –cached(或者–staged) 查看“暂存区”与“版本区”文件之间的差异 
3.git diff 分支名字 查看“工作区”与“版本区”文件之间的差异

六、撤销命令 
1.git reset HEAD 文件名 将文件从“暂存区”撤回到“工作区” 
2.git checkout – 文件名 将“工作区”的文件撤销回之前“版本区”的文件 
3.git commit –amend 如果有“误提交”,想对提交重新操作(比如:有A,B两个文件,把A提交了,而B没有提交,我们想要的是A,B一起提交,此时就可以将B提交到暂存区,然后用git commit –amend),此时,A,B就能够一起提交了

七、git的删除命令 
//工作区的文件可以随意的创建和删除(就像平常在电脑上创建和删除其他文件一样) 
1.git rm 文件名 把暂存区的文件删除(前提是:工作区没有该文件,暂存区有该文件) 
2.git rm -f 文件名 当“工作区”和”暂存区“都有某个文件时,此命令会把”工作区“和”暂存区“的该文件都删除 
3.git rm –cached 文件名 当”工作区“和”暂存区“都有某个文件时,此命令会把”暂存区“的该文件删除,但是”工作区“的该文件不会被删除,仍然存在

八、文件恢复命令 
1.git checkout id名 文件名 把”工作区“的某个文件删除后,用该命令可以恢复回来 
2.git reset –hard id名 恢复整个版本的文件(文件也许有多个) 
3.git reset –hard id名 HEAD^ 恢复到过去某一个版本的文件(可能有多个文件) 
4.git reset –hard HEAD~数字 恢复到过去的某一个版本的文件(当数字为1的时,其实就是上面的HEAD^) 
5.git reflog 执行上面的3或者4命令后,又想回到现在的版本,可以此命令调出文件的多个版本的id,然后从中找到现在版本的id,然后再调用git reset –hard id名 命令恢复到现在这个版本

十、将本地文件同步到github的”远程仓库“上 
通过命令:git push 远程仓库名字 同步的分支名 将版本区中的文件同步到github的仓库中 
可以通过git remote 命令查看远程仓库的名义,默认是 origin 
可以通过 git remote -v 命令可以查看远程仓库的地址

十一、多人协作开发下,解决冲突 
1.git fetch 
git diff master origin/master 查看远程和本地的不同 
git merge origin/master 发现不同后,手动合并 
2.git pull (把远程仓库中的代码拿下来和本地的代码自动合并)

十二、git下的分支(有利于多人协作开发) 
1.git branch 查看分支 
2.git branch new1 创建了一个新的分支new1 
3.git checkout new1 切换到new1分支下 
4 简写:git checkout -b new2 创建并切换到new2分支下 
5.分支的合并: 
假如在new1分之下,有了新的修改(有了c5版本),如果想把master分支下的代码也变成c5版本,需要进行分支合并,方法如下: 
1.切换到master分支下:git checkout master 
2.用git merge new1 命令 这样,master和new1分支就合并了,此时,master分支的指针也指向了c5 
6. git branch –merged 查看已经合并的分支 
7.git branch –no-merged 查看没有合并的分支 
8. 一般来说,new1分支与master分支合并后,new1分支就没用了,可以删除掉new1分支了 
1.git branch -d new1 把合并后的new1分支删除掉(如果new1分支没有合并,用此命令是无法删除的) 
2.git branch -D new2 强制把没有合并的分支删除 
9.当不同分支下的代码进行合并时,有可能会发生冲突(如:master分支与new1分支下的代码合并) 
假如当前在master分支下: 
1.合并 git merge new1 
2.有冲突提示,git status 能够看到有冲突的分支 
3.把有冲突的文件手动修改,修改完成后重新提交,git commit -a -m “注释” 
10.将git 上的分支同步到github上 
git push 仓库名 分支名 比如: git push origin new1 把new1分支同步到github上

十三、github上的标签release,一般是指项目开发完成后,给项目标记的版本 
1.git tag 查看标签 
2.git tag v1.0 创建标签v1.0 
3.git push origin(仓库名) v1.0(标签名) 将v1.0标签同步到github上

十四、git工具上的常用辅助命令 
1. cd.. 返回上一级 
2. ls 查看文件下的目录结构 
3. mkdir hello 创建一个hello文件夹 
4. tab键 自动补全git 命令 
5. git config –global alias co checkout 给checkout起一个别名co,之后可以用co来代替checkout 
6. enter 继续查看没有显示出来的日志记录(git log) 
7. q键 退出日志查看界面 
8. 工作区:数字是红色 
9. 暂存区:数字是绿色 
10. ~:代表有修改 
11. !:代表有冲突

git工具的使用方法以及与snv的区别相关推荐

  1. 三种常见的 Mac 安装 git 工具的方法

    目录 前言 正文 一.佛系法 二.brew 法 三.终极大法 结尾 前言 有时候新 Mac 本子需要安装 git 工具,或者原来的 git 工具损坏了,再或者需要升级 git 版本,都需要涉及重新安装 ...

  2. Git 工具 - 子模块 外部引用

    from:https://git-scm.com/book/zh/v1/Git-工具-子模块 Git 工具 - 子模块 子模块 经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目. ...

  3. pycharm git工具与coding.net结合

    pycharm git工具与coding.net结合 前提:coding.net中的项目是私密项目 问题描述:在使用pycharm自带的git工具clone(或者push)代码时出现 错误如下: Pu ...

  4. Git详解之六 Git工具(转)

    Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你 ...

  5. Git 工具(写的很乱)

    Git 工具 分支引用 指明一次提交最直接的方法是有一个指向它的分支引用. 这样你就可以在任意一个 Git 命令中使用这个分支名来代替对应的提交对象或者 SHA-1 值. 例如,你想要查看一个分支的最 ...

  6. 成功解决:fatal: detected dubious ownership in repository at ‘E:/workspace/CSMarket‘。如何使用git工具通过命令行的形式

    真是一把心酸泪呐.在初始化本地仓库的时候失败.根据字面意思是权限变更.这让我想起来.前一段时间修改一个配置文件.由于权限不够,直接将这个盘的权限进行了更替. 1.报错信息 2.解决方法 或者你把文件权 ...

  7. Git详解之六:Git工具

    Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力.(伯乐在线 ...

  8. MyEclipse修改GIT工具Author内默认信息

    场景: 使用MyEclipse的GIT工具提交代码时,如果不进行修改操作,下图红框部分会是默认状态,每次都要手动修改,很麻烦. 修改方法: 1.打开设置 2.依次点击 Team -> Git - ...

  9. 使用Git工具上传项目代码到Gitee仓库

    [本文发布于https://blog.csdn.net/Stack_/article/details/128770678,未经许可禁止转载,转载须注明出处] 一.安装git工具 [git下载] [gi ...

最新文章

  1. 用MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()
  2. vue响应的res.data和res.data.data
  3. 【springboot】静态资源设置缓存时间
  4. 网页上有错误(类不能支持 Automation 操作)解决方法
  5. [C++STL]map容器用法介绍
  6. kotlin之plus、copyOf、reverse、forEach、filter、map、reduce、fold等函数解释和使用
  7. Centos6.8编译安装LNMP环境
  8. 可以编写html的文件吗,我可以使用HTML5/JS编写文件吗?
  9. SpringCloud工作笔记084---SpringCloud项目中,关于防止表单提交_使用redis+Aspect面向切面实现
  10. iphone手机删除的照片怎么恢复
  11. [ARC093-F][容斥原理][DP]Dark Horse
  12. python量化策略——多均值-趋势-股债轮动-策略
  13. foss测试_2016年十大FOSS法律案例
  14. 武汉星起航跨境:跨境电商新蓝海,南非跨境电商市场迸发活力
  15. Day10_GY39
  16. 详解 Web Worker,不再止步于会用
  17. 柔性传感器产业化将至或将成为折叠屏背后的“黑科技”
  18. (转)很暧昧的话 最暧昧的话 男女间那些玩火暧昧话
  19. 。iod_IOD '09,第二天:Maria Winans谈信息主导的即时通讯转型
  20. C#日历calendar.cs

热门文章

  1. uniapp修改H5页面浏览器标签栏小图标
  2. 新媒体音乐,不适合闭目欣赏的前卫艺术_数字体验_新浪博客
  3. c 获取计算机参数错误,电脑硬盘C盘打不开提示参数错误怎么办
  4. Sphinx的一个应用实例
  5. 20190515—python基础:作业练习
  6. Opencv学习之:使用 opencv 将图片按照指定的帧率合成视频
  7. vs-code点击open with live server 浏览器没有反应
  8. SICK LMS511 利用串口数据采集
  9. 【量化分析】投资组合管理
  10. YYMMDD转YYYY-MM-DD