Git 是一个开源的分布式版本管理系统
GIT 常用命令 ( 以下文档 缓存区 和 暂存区 一个意思 )
-
git clone 克隆代码
-
直接拉取远程代码, 直接就有 .git 文件夹, 是已经初始化好的代码仓库了
-
不需要我们 git init
-
git init 初始化仓库
- 初始化GIT, 初始化git 之后, 会在当前文件夹内产生一个 .git 文件夹
- .git 文件夹内存储了 当前版本库的所有信息, 包括 配置, 版本记录, 标签等等。。。
- .git 版本库初始化 无任何要求, 在空文件夹 或者 有文件的文件夹内都可以执行
-
git add 添加文件到缓存区
- 可以把当前项目 新建的没有添加缓存区的文件, 加入缓存区
- git add . 是把当前目录下未跟踪的文件 全部添加到 暂存区
-
git commit 提交版本库
- 可以把缓存区的 代码 提交到 仓库
- -m 参数是 添加 提交代码的 描述
- -a 是把 有修改状态的文件 添加到 暂存区 新建未版本跟踪的文件 无效
- git commit -am " 代码提交描述 "
-
git remote add origin xxx 添加远程地址
- 用来把本地git 仓库 添加 远程仓库地址
-
git pull 拉取代码
- 这个命令是 git fetch 和 git merge 两个命令的 综合
-
git push 推送代码
- 推送代码之前要保证 仓库已经 关联了远程仓库
- 可以通过 git remote -v 查看当前仓库的远程仓库信息
- git push origin <分支>
- git push -u origin <分支> 它可以把本地分支和远程分支管理, 然后就可以是用 git push 直接提交了
- -f 这个命令是 强制推送命令, 一般情况下 慎用 ,这个命令会 不检查代码 状态 强制推送到 远程仓库, 会覆盖掉 本次代码之后的 远程仓库的 版本记录, 导致代码丢失
-
git branch 查看分支
- 创建分支用 git checkout -b <分支名>
- 查看分支 用 git branch -a
- 切换分支 用 git checkout <分支名>
- 推送分支 git push origin <分支名>
-
git tag xxx 创建本地tag
- 用来打标签, 用来记录代码的一个阶段状态 ( 常用来 记录发版状态 )
- git add v0.01 创建标签
- git add -d 标签名
- git push origin 标签名
-
git checkout
- 用来切换分支 以及 创建分支用的
- 用来还原修改的文件
- 用 git checkout <修改的文件> 可以还原代码修改 到 HEAD 状态 ( 就是还原到未修改的状态 )
- 用 git checkout . 还原所有修改文件状态到 未修改状态
-
git status 查看状态
- 查看当前项目 状态
- 红色的是 未跟踪的 新建的文件
- 绿色的是 添加到缓存区的 未提交到 版本库的 文件
- 在 开发过程中, 只要未提交的代码 都有可能丢失, commit 到仓库后的代码基本上都可以找回
- 在开发过程当中, 如果代码还没有提交, 请谨慎操作其他命令
-
git reset 重置代码 无参,
- –hard
- 这个命令是 版本退回, 不会保留退回之前的代码, 会导致代码丢失
- 这个命令 要慎用, 一般情况下不用 , 最常用的是 --soft
- –soft
- 我们在提交代码的时候, 可能备注写错了, 添加了不应该添加的文件, 这个时候我们需要撤回提交
- 这种情况下 使用 --soft 软撤销, soft 模式下, 只会撤回版本记录, 会保留代码, 我们可以二次提交
- 退回的代码 会返回到 暂存区, 方便二次提交 commit
- –mixed
- 默认模式, 在没写参数的时候, 是这个模式
- 主要用来撤销代码, 重置代码
- git reset 版本号 是重置当前工作区代码 为指定版本
- –hard
-
git merge 合并 和 git rebase 区别
- merge 一般是用来 合并代码分支
- 我们每次合并代码 都会产生一条 代码合并记录
- 我们一般在本地合并代码 , 合并之前先把相关分支的代码都 拉取到最(一般情况)
- 切换到 要合并的分支 使用 git merge <合并的其他分支> 来merge 代码
- 比如 当前子啊 master 分支, 执行 git merge dev 是把 dev 分支的代码 合并到 master 分支上
- merge 和 rebase 区别
- merge 每次合并会产生合并记录, commit 记录不会丢失
- rebase 合并代码 没有记录, 会重置 commit ID
-
git diff 代码对比
- 使用当前命令, 会调用 git 自带的代码对比工具 展示 文件改动的具体情况
- 减号 是本次版本删除的 代码, 加号是本次版本新增的代码
-
git config
- 设置当前git 用户的基本信息
- git config global --user-name 用户名
-
git fetch
- 拉取最新代码
-
git restore --staged 从 暂存区 撤回 添加的文件
GIT使用技巧
- HEAD
- 它是当前工作区代码 分支版本的引用, ( 其实就是某一次的代码 提交记录 )
- –hard
- 代码 硬性 撤回, 会丢失代码
- –soft
- 代码 软撤回 会保留撤回之前的提交的 代码
- –mixed
- 暂存区
- 使用 git restore --staged 撤销暂存
- 暂存区 是我们提交代码之前 暂时存储代码的地方
- 当前版本 如何退回版本
- 使用 git reset HEAD^ 撤回代码提交记录
- 远程仓库
- 在远程服务器上的 代码仓库, 一般用来协同开发
- 本地仓库
- 本地电脑内的 git仓库
- 版本历史
- git log 命令查看当前项目 提交的历史版本
- 工作目录
- 指得就是 .git 文件夹所在的 目录
- 未跟踪的文件
- 指的是 没有在 git 跟踪过的文件 ( 新建的还没有 执行 add 添加到 git 的文件 )