文件命令

clear 清空屏幕
cd 切换文件目录
mkkdir 创建文件夹
pwd 用于显示当前的目录
rm 删除文件
cat 查看文件

初始化

git init 将本地的目录变成git可以管理的仓库;

提交

git add [ filename || *] 将文件提交到缓存区里面
git commit -m “[提交的注释]” 将文件提交到仓库中

第一次远程提交

git remote add origin 【https://github.com/tugenhua0707/testgit.git】
image.png
git push -u origin master
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分 支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在 以后的推送或者拉取时就可以简化命令

以后提交

git push origin master
git remote 查询远程库信息
git remote -v 查询远程库的详细信息

克隆

git clone【https://github.com/tugenhua0707/testgit.git】 项目地址

查看状态

git status 查看当前文件状态
image.png 说明当前文件未提交
git diff [“文件名”] 查看文件呢到底改变了那些内容 也可以查看分支改变了那些内容
git log 打印历史提交的内容
常用指令 - 图3
git log -pretty-online 输出为git log 的简化版
git show

版本控制

场景:当我们不得不做一些版本的回退动作时;先 git reflog 获取所有提交信息;然后 git reset ‘版本号’

git reset hard HEAD^ 回退到上一版本如果要再上一版本可以多交一个^
git reset —hard HEAD~100 回退到之前的100个版本
git reset —hard[“版本号”] 到某一版本也可以用这个转到最新的版本
git reflog 获取版本号

撤销和删除文件

有如下几种方法可以做修改:
第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存 区,最后commit掉。
第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset —hard HEAD^
第三:首先在做撤销之前,我们可以先用 git status 查看下当前的状态。
git checkout — [“file”]。来撤销

分支

git checkout -b dev 创建并切换dev分支,相当于下面两句
git branch dev 创建dev分支
git checkout dev 切换dev分支
git branch 查看分支,并列出所有分支
git merge dev 合并dev分支(合并分支之前先要将其他分支提交到仓库中)
git branch -d name 删除分支

分支冲突

在主分支和其他分支都有不同内容的时候就会产生冲突,
常用指令 - 图4
git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<>>>>fenzhi1 是指fenzhi1上修改的内容,我们可以修改下如下后保存:

分支管理策略。

通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式。首先我们来做demo演示下:

  1. 创建一个dev分支。
  2. 修改readme.txt内容。
  3. 添加到暂存区。
  4. 切换回主分支(master)。
  5. 合并dev分支,使用命令 git merge –no-ff -m “注释” dev
  6. 查看历史记录

bug分支

在开发中,会经常碰到bug问题,那么有了bug就需要修复,在Git中,分支是很强大的,每个bug都可以通过一个临时分支来修复,修复完成后,合并分支,然后将临时的分支删除掉。
Git提供了一个stash功能,可以把当前工作现场 ”隐藏起来”,等以后恢复现场后继续工作。
git stash 将当前的工作现场隐藏起来
git stash list 查看所有被隐藏的的文件列表
**工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,可以使用如下2个方法:

git stash apply 恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除。
另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。
常用指令 - 图5

多人合作

当你从远程库克隆时候,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且远程库的默认名称是origin。

  1. ![](https://cdn.nlark.com/yuque/0/2020/png/516637/1582820284865-097b3001-1a09-4493-9208-d16c36bc8198.png#height=169&id=VsVCW&originHeight=169&originWidth=619&originalType=binary&ratio=1&size=0&status=done&style=none&width=619)<br />这显示的是远程库的信息为origin<br />**git push 推送**<br />**git fetch 抓取**

git fetch origin 本地更新某个分支
git pull git pull是git fetch后跟git merge FETCH_HEAD的缩写。
取回远程主机某个分支的更新,再与本地的指定分支合并,
列:要取回origin主机的next分支,与本地的master分支合并
$ git pull origin next:mast 如果是当前分支,那么mast可以省略
$ git pull origin next

多人协作工作模式一般是这样的:

  1. 首先,可以试图用git push origin branch-name推送自己的修改.
  2. 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
  3. 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送

标签

git tag 查看所有标签
git tag [name] 打开一个标签 <标签都只存储在本地,不会自动推送到远程。>
git show [tagename] 查看标签信息
git log 如果提交历史中有标签,那么会打印标签的相关信息
image.png
可以直接复制id的前几位 加 git tag [tageid] 切换tag

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/516637/1582873924872-1bc9f521-e2bc-418b-ae6a-2a0c23bfab25.png#height=75&id=zjoRu&name=image.png&originHeight=97&originWidth=707&originalType=binary&ratio=1&size=11138&status=done&style=none&width=547)<br />**git tag -d 【tagName | id】 删除某人标签**<br />**git push origin 【tagName】 将标签推送到远程**

修改

修改还未提交的 commit 信息:git commit –-amend