Git&SourceTree学习

一.Git是什么?

  • Git是一种代码托管技术(版本控制软件),是用于多人合作开发时候的一个管理,能代码还原。包含几个概念:远程仓库,克隆,本地仓库,分支,提交,拉取,合并,推送等。

二.Git的相关概念

  • 远程仓库: 是指我们代码存储在服务器的地方,这个仓库是我们整个团队中所有人都可以访问的地方。
  • 克隆: 从远程仓库克隆到本地的过程
  • 本地仓库: 指的是我们开发人员从远程仓库克隆一份代码之后,保存在我们本地的代码,这份代码只有克隆的代码的开发人员可以看到。
  • 分支: 我们在开发中可能会遇到多个分支进行,比如主分支(master分支)
  • 开发分支:(develop分支),但我们开发的时候,一般不在master上面进行开发,而是我们自己单独的从主分支或者开发分支中在分出来一条分支(比如test分支),然后我们就在test分支上 进行开发,每个分支都有自己的代码.然后我们就在test分支上进行开发,每个分支都有自己的代码。
  • 提交: 在我们的代码开发完成之后,需要将代码进行提交,提交的时候需要我们将修改的文件进行提交,并说明修改的内容。注意,此时代码提交只会提交到我们本地的仓库,远程仓库此时还不会修改。
  • 拉取: 开发中,同一个项目可能是多人协作开发,这个时候,我们就需要将别人修改的代码拉取下来合并到我们自己的代码中。但是如果不同的开发人员修改了同一部分代码,那么就可能发冲突,这时候我们需要解决完冲突时候,才能继续将代码进行提交。
  • 合并: 在上面我们自己的分支开发完成之后,没有问题之后,需要将我们的分支合并到主分支上面
  • 推送: 之前的所有操作都是在我们本地进行的,远程仓库的代码并没有任何的改变,这个时候就需要我们将本地的代码推送到远程的仓库中,更新远程仓库代码。在推送的过程中,如果我们本地的代码不是最新版本的,就需要我们先将远程代码拉去下来(如果有冲突重新解决冲突,提交),然后在重新推送。

二.Git有什么用?

  • 代码的版本控制,分支管理,多人合作完成项目等。

三.Git常用命令

   git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。  
   git add XX       把xx文件添加到暂存区去。
   git commit –m “XX”  提交文件 –m 后面的是注释。
  git status        查看仓库状态
   git diff  XX      查看XX文件修改了那些内容
   git log          查看历史记录
   git reset  --hard HEAD^ 或者 git reset  --hard HEAD~ 回退到上一个版本
						(如果想回退到100个版本,使用git reset –hard HEAD~100 )
   cat XX         查看XX文件内容
   git reflog       查看历史记录的版本号id
   git checkout -- XX  把XX文件在工作区的修改全部撤销。
   git rm XX          删除XX文件
   git remote add origin  关联一个远程库
   git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
   git clone  从远程库中克隆
   git checkout –b dev  创建dev分支 并切换到dev分支上
   git branch  查看当前所有的分支
   git checkout master 切换回master分支
   git merge dev    在当前的分支上合并dev分支
   git branch –d dev 删除dev分支
   git branch name  创建分支
   git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
   git stash list 查看所有被隐藏的文件列表
   git stash apply 恢复被隐藏的文件,但是内容不删除
   git stash drop 删除文件
   git stash pop 恢复文件的同时 也删除文件
   git remote 查看远程库的信息
   git remote –v 查看远程库的详细信息
   git push origin master  Git会把master分支推送到远程库对应的远程分支上  

四.SourceTree是什么?

  • SourceTree 是一个Git代码管理的图形化工具。因为Git 默认只能使用命令行模式进行一系列的操作,这个工具,整个使用了图形化。

五.SourceTree的使用

1. 基本概念:

  • 克隆(clone): 从远程仓库URL加载创建一个与远程仓库一样的本地仓库
  • 提交(commit): 将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
  • 检出(checkout): 切换不同分支
  • 添加(add): 添加文件到缓存区
  • 移除(remove): 移除文件至缓存区
  • 暂存(git stash): 保存工作现场
  • 重置(reset): 回到最近添加(add)/提交(commit)状态
  • 合并(merge): 将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
  • 抓取(fetch): 从远程仓库获取信息并同步至本地仓库
  • 拉取(pull): 从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
  • 推送(push): 将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
  • 分支(branch): 创建/修改/删除分枝
  • 标签(tag): 给项目增添标签
  • 工作流(Git Flow): 团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
  • 终端(terminal): 可以输入git命令行

2. 解决合并冲突

  • 方法一:在相关的版本处,选中”冲突行”,合并区默认处于合并位置,鼠标右键,选择最终冲突地方留下的内容。
  • 方法二:如果冲突非常少,可以直接在右侧栏中解决冲突。

3. 删除某一文件(本地和远程同时删除):

 git rm XX 删除XX文件
 git commit –m “XX” 提交文件 –m 后面的是注释。

你可能感兴趣的:(开发工具,git)