为什么使用git
- 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
- 分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站。
常用命令
-
创建一个新的版本库
> git init -
版本创建与回退
-
使用
# 创建一个新的版本 git add fileName git commit -m "提交日志“ # 查看版本记录 git log # 回退到前n个版本 git reset --hard HEAD^ # 其中HEAD表示当前最新版本,HEAD^表示当前版本的前一个版本,HEAD^^表示当前版本的前前个版本,也可以使用HEAD~1表示当前版本的前一个版本,HEAD~100表示当前版本的前100版本。 # 回退到某个版本 git reset --hard 版本号 # 版本号通过 git log 或者 git reflog 查看到 -
工作区与暂存区
# 工作区----项目目录,工作区有一个隐藏目录.git,是git的版本库。 # git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。 # 查看当前工作树的状态 git status git add 将更改的文件添加到暂存区,git commit 将暂存区的文件一次性提交到git仓库 -
管理修改和撤销修改
# 改乱了工作区某个文件的内容,想直接丢弃工作区的修改 git checkout -- fileName # 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改时分两步 git reset HEAD file git checkout -- fileName # 已经提交了不适合的修改到版本库里,想要撤销本次提交 git reset --hard HEAD^ -
对比文件的不同
# 对比工作区的file和HEAD版本中的该file的不同 git diff HEAD -- fileName # -- 代表工作区 HEAD 代表当前版本 # 对比不同版本中某文件的不同 git diff HEAD HEAD^ fileName
-
-
分支管理
-
创建与合并分支
# 查看当前有几个分支并且查看在哪个分支下工作 git branch # 创建分支: git branch <name> # 切换分支 git checkout <name> # 创建一个分支并切换到其上工作 git checkout -b <name> # 切换回master分支 git checkout master # 把分支的工作合并到master分支上 git merge <name> # 删除分支 git branch -d <name> -
解决冲突
# 冲突:当master和分支上同时修改了同一文件,这时git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突。 # 可以通过创建一个新的版本来解决冲突 git add fileName git commit -m "提交日志" -
分支管理策略
# 上述解决冲突的方法会导致:删除分支后,会丢掉分支信息。可以通过下面的命令来解决这个问题 git merge --no-ff -m "禁用fast-forward合并" <branchName> -
bug分支
# 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,恢复工作现场。 git stash git checkout master git checkout -b bug-dev git add fileName git commit -m "提交日志" git checkout master git merge --no-ff -m "提交日志" bug-dev git branch -d bug-dev git checkout dev git stash pop
-
本文深入探讨Git版本控制系统的使用,包括版本创建与回退、工作区与暂存区管理、分支创建与合并等核心操作,以及如何解决冲突,提供了一系列实用的Git命令,帮助开发者高效管理代码。
1388

被折叠的 条评论
为什么被折叠?



