Git(代码版本管理软件、工具 详细)

Git 使用步骤

  1. 在创建的文件夹里面 。。。 (不要用中文名字)
  2. 右键Git Bash Here 小黑框
  3. 在小黑框里写:git init (意思是初始化一个仓库),//一个项目一次就可以
    会出现一个隐藏的.git文件夹,不要动
  4. 在里面敲代码就可以了 小黑框路径要对
  5. git add . //放入暂存区 也可以add后面选几个文件
    git commit -m“描述提交的代码” //注释 commit(提交)

第一回出现 告诉他是谁??
第一回运行 出现的那两句话! 以后不用再设置了,可以覆盖 就是设置邮箱和用户名
查看设置的邮箱和用户名
git config user.email
git config user.name
第一种 : 邮箱和用户名是随便写的 可以修改的 一条一条改,,退出后用这个再设置
git config --global user.email "邮箱"​
git config --global user.name “名字”
第二种 :退出再登录
退出:
​ git config --global --unset user.email
​ git config --global --unset user.name
​ 推荐大家使用 github注册的邮箱和用户名来登录.

查看所有的全局配置项
git config --list --global
查看帮助文档
git help 例如:git help config
git help -h

要提交内容,首先得有内容,写点代码
写了代码后就运行这两个,,,,,,
git add . add后面可以选中文件放入暂存区
$ git commit -a -m 是直接从工作区提交到仓库区,跳过使用暂存区域 (一般不用 )
前提是文件要git管理后才可以, add就是 走完那两步,再修改工作区后,才可以直接提交到仓库区
git commit -m“描述提交的代码” //注释
如果没有error、或者fatal提示,一般都的是成功的 如果黑窗口出现 : 表示一屏显示不过来了 ,按上下键,来查看完整的信息 ,如果出现END,表示到结尾了 ,按 q 退出
git log 查看提交的日志 。有的时候会卡死, 卡死按q退出. 或者ctrl+c两次退出
git log --oneline //查看一行类型的日志,只有版本号和描述信息
git status 查看状态 会提示哪里修改了 有文件新增了
git status -s 查看状态简写

移除文件 目的:删除工作区或者git仓库中的文件 两种
从git仓库和工作区中同时移除对应的文件 : git rm -f 文件名
只从git仓库中移除指定的文件,但保留工作区中的文件 git rm --cached 文件名

忽略文件 目的:文件夹(项目)中有一些文件是不希望被提交到 git 仓库的(比如本地文件)
方式: 通过 .gitignore 配置文件进行忽略

glob 模式 是指简化了的正则表达式

取消暂存的文件
目的:将文件从 “暂存区” 返回到 “工作区”
git reset HEAD .或者要移除的文件名称
撤销(丢弃)文件的修改
git checkout

查看提交历史
目的:查看提交到 “git仓库” 的历史信息
git log

回退到指定的版本
目的:根据提交历史,来回退到某一个历史版本
git reset --hard

如果出现 on branch master mothing to commit,working tree clean
意思是没有东西要提交,工作区是干净的, 说明提交是成功的

clear 清屏 git log出来的commit后面黄色的就是版本号
三个区域

git add . 所有文件 。。add后面可以选中文件放入暂存区 。add 文件名:添加指定文件到暂存区。可以多个文件
git commit -m“描述提交的代码” 也可以指定文件到仓库区,commit后面文件名
git commit -a -m “提交日志” 是直接从工作区提交到仓库区,有前提!!
前提是文件要git管理后才可以, 走完那两步add 和 commit后。Git管理过就可以。
再修改工作区后,才可以直接提交到仓库区

提交工作区和暂存区自上次commit之后的变化,直接到仓库区。

新文件,从未被Git管理过,是不能直接提交到仓库区的

工作区新建的文件和Git没有任何关系;文件被添加到暂存区,才叫做被Git管理过
记录每次更新到仓库
工作区、暂存区、本地仓库
git版本穿梭(回滚)
撤销操作,只能恢复暂存区或工作区,与最近一次提交的代码一致。
git checkout . 1恢复暂存区的所有文件到工作区
git checkout 文件名 2.能恢复暂存区的指定文件到工作区

3恢复某个commit的指定文件到暂存区和工作区 git checkout [commit版本号] [file]

git checkout 版本号 切换版本到历史 注意:切换到历史版本,可以修改的,千万别改代码,改了就回不来了。
git checkout master 切换版本到最后一次提交 git checkout 是暂存区到工作区

重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变 git reset [file]

重置暂存区与工作区,与上一次commit保持一致。该命令后不能加文件或文件夹 git reset --hard

撤销操作 上面的

重置暂存区与工作区,与上一次commit保持一致。该命令后不能加文件或文件夹 git reset --hard

命令: git reset --hard [email protected]{2} # 使用命令跳转到任意一个版本
这个是仓库区到工作区和暂存区的
命令: git log --oneline //查看一行类型的日志,只有版本号和描述信息

前面黄色的就是版本号
关闭小黑框再打开后后只能看到一个版本号,没有版本号回不去。可以执行下面的,查看所有
命令: git reflog //查看所有的日志,包括回滚的日志,,

工作区添加到暂存区,然后暂存区提交到仓库区
暂存区回到工作区。git checkout . 或者 git checkout 版本号 文件 回退指定文件到历史的某个版本
仓库区回到工作区和暂存区 git reset --head

回退所有代码到历史版本

回退到上一个版本 git reset --hard HEAD^ # 回到上两个版本 git reset --hard HEAD^^

回到前100个版本 git reset --hard HEAD~100

git log --help 就是改log这个位置。回车就会打开网页
HEAD指针
master指向最后一次提交
.

三:git分支 branch
切换分支之前,需要把当前分支的工作全部提交,否则不允许切换到其他分支。
实际开发中,鼓励多使用分支。!!!!!!!!!!!!!!!!!!!
我们现在写代码,都是写在一个默认的主分支(master)里,这样其实是不对的.

3.1 使用 步骤
1.新建仓库 就会有一个默认的master分支. git branch -a 可以查看到所有分支(包括远程分支)

2.新建分支 git branch 分支名​

3.切换到分支写代码,切换分支 git checkout 分支名 切换分支也可以使用 git switch dev

4.在新分支上编码, 编码后 add commit , 提交到新分支​
5.切回到主分支后合并新分支 git merge 分支名
注意:要回到主分支再合并
6.删除新分支 git branch -d 分支名
​ 注意:回到主分支再删除次分支
补充: git branch 查看分支 # 创建并直接切换分支,也可以使用 git switch -c dev

也可以创建并直接切换分支 git checkout -b dev -b相当于branch

切换分支之前,需要把当前分支的工作全部提交,否则不允许切换到其他分支。
3.3 工作中的分支使用(记忆)
​ 新建仓库就有有一个默认的主分支.
​ 1.主分支(master),一定是不能直接在上面写代码的.
​ master上面的代码一定是没有问题,可以运行起来的,
​ master分支上的代码一般用来做上线, 做版本发布.
​ 2.写代码一定有一个开发分支(dev).
​ 一定是没有问题的代码才合并到master分支上.
快进模式合并两个分支
快进模式合并
两个分支A和B
B分支包含A分支的所有版本,在合并的时候,叫做快进模式合并。
快进模式合并,相当于使用B分支的代码覆盖A分支的代码;同时版本也会更新到A分支
两个分支合并,比如把 B 分支 合并到A分支上
需要先切换到A分支 git checkout A
然后执行 git merge B ,表示把B分支的代码合并到A分支上。
合并模式合并两个分支
合并模式
两个分支A和B
A分支有独立的提交,B分支也有独立的提交,在合并的时候,叫做合并模式的合并。
合并模式,有可能会产生冲突;如果出现冲突,需要解决冲突,然后需要添加、提交一次,从而完成合并。
合并模式,如果没有冲突,也需要在合并之后提交一次。
两个分支合并,比如把 B 分支 合并到A分支上
需要先切换到A分支 git checkout A
然后执行 git merge B ,表示把B分支的代码合并到A分支上。
如果看到 CONFLICT,则表示有冲突,需要打开有冲突的文件,手动解决冲突,然后添加、提交即可。
如果有冲突,会显示如下提示:

手动打开有冲突的文件,解决冲突,保存文件。(手动解决)
再次添加(add操作)提交(commit),即可完成合并。
如果没有冲突,则显示如下提示:表示让我们输入提交说明。

合并没有冲突的时候
按 i 插入模式,修改黄色的字为提交说明 按esc退出插入模式 直接输入 :wq 回车,表示完成合并后的提交

多人协作的时候一定先拉取git pull !!然后再推送git push 拉取之后,远程分支会自动和本地分支合并