Git的基础使用

Git安装

官网下载:https://git-scm.com/downloads
Git的基础使用_第1张图片
安装的时候除了改一下安装路径,其他全部默认就可以。安装完之后鼠标右击菜单中就多出下面这两项
在这里插入图片描述
我们常用的就是Git Bash Here 这一项。
点击Git Bash Here 这一项,会打开一个命令行窗口,以后的git操作就是在这里进行。现在你可以尝试输入git --version这个命令,会看到当前安装的git版本号。

Git基本工作流程

Git的基础使用_第2张图片

  • Git仓库,用来存放项目状态的地方,就是一个由Git创建的一个存放记录的文件夹。
  • 工作目录:被Git管理的文件夹,也就是我们实际看到的文件夹和文件,我们写代码的地方
  • 暂存区:暂存区是用来告诉git哪些文件需要被保存进仓库,可以理解成暂时提交但没有真正的提交到Git仓库,是一个临时存放的地方。

下面这个情景进一步明白暂存区作用:
现在我们要修改一个文件,修改好之后把这个文件放到暂存区(类似玩游戏时候的临时存档)。接着我们继续第二次修改这个文件中的内容,这时候发现修改错了地方,想要回到第一次修改好内容时候那样子。在以前我们是使用撤销来恢复,但是当错的地方特别多的时候,是不是发现撤销也不能完全回到第一次修改好内容时候的状态呢?那么这时候暂存区就能帮助我们了,因为我们开始的时候将第一次修改好内容的文件放到了暂存区。这时候使用git命令将第一次修改好内容的文件从暂存区恢复到工作目录,也就是相当于用第一次修改好内容的文件覆盖当前这个文件(类似玩游戏时候的读取临时档)。

也就是说工作目录是当前正在玩的游戏,暂存区是临时存档,Git仓库是真正的存档。当你玩游戏刚刚完成任务 人物升级可以加技能点,点完之后发现加错了,于是就可以读取临时存档再次重新来过。或者又想回到前几个任务再玩一下,临时存档只能读取到刚刚任务完成人物可以加点的时候,所以要读取之前真正的存档才可以。

Git仓库,才是我们真正用来存放项目的地方,所以想要将项目真正保存下来。需要通过git命令将暂存区中的文档提交到Git仓库中去保存。注意:只有存放在暂存区的文件会被提交到Git仓库,工作目录中的文件是不会的。所以我们需要先将工作目录的文件保存一份去暂存区,然后再将暂存区的文件提交到Git仓库。

基本使用

Git使用前的配置
在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。不填不能提交。你提交项目到 git 仓库的时候你的信息也被自动记录下来,记录着这次是你提交的,出了问题别人就知道是你提交的了。

  1. 配置提交人姓名:git config --global user.name 提交人姓名
  2. 配置提交人姓名:git config --global user.email 提交人邮箱
  3. 查看git配置信息:git config --list

注意
如果要对配置信息进行修改,重复上述命令即可。
配置只需要执行一次,以后每次提交的时候都是用这个信息。

提交步骤

  1. git init 初始化git仓库 (在当前文件夹中创建一个Git仓库,也就是把当前文件夹变成工作目录)
  2. git status 查看文件状态(显示暂存区有哪些文件,以及显示工作目录中有哪些文件修改了又没有放到暂存区)
  3. git add 文件列表 追踪文件(保存到暂存区)
  4. git commit -m 提交说明信息 向仓库中提交代码(提交到Git仓库)
  5. git log 查看提交记录

撤销

  • git checkout 文件 用暂存区中的指定文件覆盖工作目录中的(覆盖之后暂存区还是有这个文件的)
  • git checkout . 用暂存区中的所有文件覆盖工作目录中的
  • git rm --cached 文件 将文件从暂存区中删除
  • git reset --hard commitID 将 git 仓库中指定的某次记录恢复出来,并且覆盖暂存区和工作目录,也就是最新的代码修改会丢失,同时会删除commitID之后的提交记录log。慎用!!!
  • git reset --soft commitID 删除commitID之后的提交记录log,工作区的最新代码的改动还在,暂存区的文件也还在,不会覆盖当前的代码。也就是只是删除提交记录log,慎用!!!
  • git checkout commitID回到某次提交的记录的时候(如果当前暂存区有文件还没提交是不能够回去的,要先清空),这个不会删除commitID之后的提交记录,也就是回到某次历史版本,而最新的版本记录都还在。这个相当于创建了一个临时的分支。如果要更改内容的话,最好还是创建一个真的分支,使用下面分支中的命令。使用git checkout master就能回到最新版本的位置。参考https://www.cnblogs.com/ming-szu/p/11212189.html

更多撤销相关操作
git reset HEAD^ 回退所有内容到上一个版本(也就是回退到了暂存区,还需要将暂存区的覆盖到当前工作区) 
git reset HEAD^ a.py 回退a.py这个文件的版本到上一个版本     
git reset –soft HEAD~3 向前回退到第3个版本      
git reset –hard origin/master 将本地的状态回退到和远程的一样
git revert HEAD 回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit

分支

可以认为分支就是当前工作目录中代码的一份副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

分支细分
主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。
开发分支(develop):作为开发的分支,基于 master 分支创建。(需要我们自己创建的)
功能分支(feature):作为开发具体功能的分支,基于开发分支创建(需要我们自己创建的)
上面的关系就是 主分支 分出 开发分支 ,开发分支 再分出 功能分支

分支命令
创建和切换

  • git branch 查看分支
  • git branch 分支名称 创建分支
  • git branch 分支名称 commitID基于某个历史版本创建分支
  • git checkout 分支名称 切换分支(在切换分支之前,要保证当前工作区是干净的全部都提交的状态,如果是新增的文件又没有提交到仓库,那么切换分支的时候新增的文件就还是会带到切换之后的分支的,容易出现问题)
  • git checkout -b 分支名称 创建并切换分支
  • git checkout -b 分支名称 commitID 基于某个历史版本创建并切换分支

合并分支

  • git merge 来源分支 合并分支(表示将另一个分支合并到当前位置的这个分支)

删除分支

  • git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)
  • git push origin :branch-name 删除远程分支,冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。

查看提交记录判断分支情况

  • git log --graph 会出现一个commit的图,可以看到当前分支的总commit情况
  • git log --graph --all --decorate 也是用来查看commit的图,英文状态下按Q退出

暂时保存更改
在git中,可以暂时提取当前分支上所有的改动并存储在一个临时的地方,让开发人员得到一个干净的工作副本(干净的暂存区),临时转向其他分支进行另一项工作。当另一项工作完成之后再回来这个分支将存储在临时地方的改动还原回来继续工作。

注意:这个临时的地方是所有分支共享的,也就是说你没回来之前的那个分支提取改动,而是去了另外一个分支提取了改动也是可以的。

使用场景:分支临时切换

  • 存储临时改动:git stash
  • 恢复改动:git stash pop

忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。也就不会添加到暂存区。
git忽略清单文件名称(文件名就是以点开头):.gitignore
在这个名称叫 .gitignore的文件里面写要忽略的不需要git管理的文件或文件夹名称就可以
Git的基础使用_第3张图片

将工作目录中的文件全部添加到暂存区:git add .

你可能感兴趣的:(软件使用)