网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
创建了本地仓库,git才能对我们的项目进行管理
2.添加和提交更改
**git add[filename]**
:将更改添加到暂存区。**git add .**
:将当前目录中的所有更改添加到临时区域。**git status**
:查看工作目录和暂存区的状态。**git commit -m "[commit message]"**
:使用描述性消息提交阶段性更改。
这个时候再查看工作目录和暂存区的状态就是这个样子:
显示工作区被清空。
3.分支管理
很多时候我们在修改项目内容的时候,若是直接修改了一点就提交,到后面发现这些修改又没有必要了的话,我们就要对版本进行回退操作(这个稍后再讲),非常麻烦,为了应对这种情况,分支管理操作显得非常重要!
**git branch**
:列出仓库中的所有分支。
**git branch [branch name]**
:使用指定的名称创建一个新的分支。**git checkout [branch name]**
:切换到指定的分支。**git checkout -b [branch name]**
:创建并切换到新的分支。
可以发现切换不同分支的时候,最后面的括号的内容在变化。
再使用**git branch**
语句,就能看到所有的分支了。
**git merge [branch name]**
:将指定的分支合并到当前分支中。
4.查看提交历史
此处省略为了演示用的多次提交
**git log**
:查看提交历史。
**git reflog**
:显示commit
的历史提交记录
当提交次数过多了或者清屏了的时候,使用git log可能不能看到所有的提交历史,这个时候使用git reflog,我们就能看到所有的提交历史。
**git diff**
:显示工作目录和暂存区之间的差异。
我现在先在文档里面添加了一行“stage08”,这个时候调用git diff,就可以看到这样的画面:
**git diff [commit1] [commit2]**
:显示两次提交之间的差异。
这里我在后面加上两次提交的哈希值,我就能看到两次提交中的不同之处。
**git checkout -- <filename>**
:丢弃工作目录中对指定文件的更改,将文件恢复到最近一次提交时的状态。
上面提到我在工作目录中添加了一行“stage08”,假如这个时候我不需要我目前所做的更改,我就可以调用这个语句,让工作目录回到上一次提交的状态。
**git giff --staged**
:查看暂存区和最后一次提交之间的差异。使用这个命令可以查看已暂存的更改和最后一次提交之间的差异。
**git reset --hard<commit_hash>**
:这个命令会将HEAD指针指向指定的提交,并将工作目录和暂存区回滚到该提交的状态。其中,<commit_hash>
是目标提交的哈希值(或者可以是分支名、标签名等可以直接解析到哈希值的引用)。
上面的git checkout – 命令,会丢掉工作目录所做的更改,直接回到上一次的提交状态,但是很多时候我们并不想这样做,毕竟丢掉了就没了…这个时候我们就可以先将我们的更改提交,然后使用命令git reset --hard<commit_hash>,我们便可以直接跳到相应提交的状态。
这里我们跳到了stage05,在需要时我们用相同的操作便可以回到之前的版本,或者说任意的版本,而且工作的内容也不会丢失。
5.撤销更改
**git reset --hard
**:重置工作目录和暂存区到指定提交的状态,同时丢弃之前的所有修改。
git checkout -- [file]
和git reset --hard
都是用于撤销对文件的更改,但它们的行为略有不同:
- git checkout – [file]:
git checkout – [file]:
- 这个命令用于丢弃工作目录中对指定文件的更改,将文件恢复到最近一次提交时的状态。
- 它只影响工作目录中的文件,不会影响暂存区或提交历史。
- 如果文件在暂存区中有修改,那么这个命令会用暂存区的文件覆盖工作目录中的文件。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ff00ff254613a03fab5e56a57acb)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!