Git:是一个分布式版本控制软件,用以有效高速的处理从很小到非常大的项目版本控制管理
git 本地环境常用命令
项目开始
- git init 在本地初始化git仓库
- git status 查看当前的git状态
- git add 添加当前目录下所有文件到版本缓冲区中暂存
- git commit 提交到版本库中,并可以填写相关说明
- git log 查看 git 提交的版本记录
想回到过去
- 使用 git reset --hard commit版本号 工作区的所有文件就回到指定的版本
- 使用 git reset HEAD^/~(num)一个具有注脚的文本。1 回到之前提交的某个分支记录上
- 虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!所以远程分支回退时 应使用 git revert HEAD^/~(num)
回到过去之后也有后悔药
- 使用git reflog 查看回滚历史记录,查阅得到版本哈希值
- git reset --hard 版本号 就又返回“回到过去“之前的的记录了
stash 的使用
stash:将工作区变化的所有文件临时获取存储在某个地方,但又可以拿回来重新使用。
- git stash 将开发到一半的项目功能,临时存储到 “某个地方”
- git stash pop 将开发到一半的功能,从某个地方再次拿回来。 拿回来可能会有冲突,根据代码内容解决冲突即可
branch 的使用
branch:分支,默认仅有一个名为master 分支,一般开发新功能流程会创建一个新的dev分支进行,开发完毕后再合并到主分支master上
- git branch 查看当前所在的分支
- git branch “分支名称” 删除该分支
- git branch dev 创建dev分支用于开发新的功能
- git checkout dev 切换到dev分支下进行开发后,利用git add/git commit 后提交记录
- 在master分支上 使用git merge dev 合并该分支的代码记录到master上
远程分支的常用命令
GitHub 是基于git 的代码托管平台,可以将内容以版本的形式在远程仓库中保存一份,类似还有GitLab,码云等。
- git clone url 可以将远程仓库中的代码在本地指定目录下拷贝一份,这样在本地就有与远程相同的主分支 名为 origin/master 与远程分支master 相同。
- 使用 git fetch 可以更新远程仓库的新的分支和记录到本地中,但并没有与本地合并,可以理解为下载了尚未安装。使用git merge origin/master 才与本地合并。
- 同时也可以使用直接 git pull 分支/git pull 分支 --rebase 直接更新合并 是fetch和merge的结合
- 使用git push 可以推送自己在本地更新的分支和代码记录到远程仓库,但如果项目中有多名人员同时提交代码可能会造成冲突,最佳的推送方式为 先git pull 分支 --rebase 再 git push 分支 最为稳妥。
注释
HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。 ^ 向前移动一个节点 ,~ 后接整数,指定要向上移动的节点数,没有数字时默认向上移动一位 ↩︎