因为软件构造课实验需要用到Git,所以通过看视频和整理文本简单总结了一些Git的常用基本命令,为个人笔记,其中如有疏漏,还望海涵,敬请指正。
·用git status查看文件,红的是变更了还没存的,绿的是暂存还没提交的
·变更了一个文件后用git add <文件名>把文件加入到暂存区,这时候用git status看是绿的
·如果反悔了这时用git reset <文件名>可以把绿色的文件重新变红
·然后用git commit -m(有空格) "附属信息"来提交并添加信息
·提交后可以用git log来查看每次提交的信息
·Git文件四状态:新建一个文件是untracked状态,add之后是staged状态,commit之后是unmodified状态,如果再次修改就是modified状态
·Git提工了一个设置:alias——让我们能够自定义命令的写法。
·想要回溯版本(比如提交第六次后感觉第五次提交的好),通过git log找到当时提交的commit_ID,然后通过git reset <commit_ID>,即可将现有文件恢复到当时提交的状态。
(在git reset命令后面加空格加后缀:
--hard:不保存所有变更,所有的一切还原到commit_ID对应的状态
--soft:保留变更且变更内容处于staged
--mixed:保留变更且变更内容处于modified
啥也不加会默认是mixed模式)
·再使用git log会发现第六次提交的记录消失了,如果后悔了想回到最新的(第六次)版本,可以用使用git reflog查看所有操作记录,找到当初回退的commit_ID
·commit_ID是一个很长的哈希值,但其实输入前7位就可以锁定是哪个commit了
·(master)是一个分支的名字,是初始化git仓库时自动生成的默认分支,一般作为主分支
·通过git checkout -b <name><template>即可创建新的分支,其中<name>是新分支的名字,<template>是指以那个分支或commit为模板(若不写这个则以当前所在分支为模板)
模板的意思就是将当前分支上存储的commit记录完全继承(复制),即相当于模板的影分身
·使用git checkout <name>可以切到分支名为<name>的分支;使用git branch可以查看所有分支,带*上色的条目代表我们当前所处的分支
·使用git merge <branchName>可以合并分支变更
·复制github上仓库的下载链接,使用git clone <下载链接>即可将远程仓库下载到本地
·本地新建分支后可以使用git push --set-upstream origin <name>在远程仓库建立一个名为<name>分支并作为本地<name>分支的上流分支,使得本地的分支可以推送到远程仓库(origin指的就是远程仓库)已经建好分支的情况下直接使用git push就可以将本地分支推送到远端
·可以使用git fetch拉取远程仓库仓库的分支信息,而git branch只能读本地的,在fetch果之后,执行git branch看不到远程有而本地没有的,但可以通过git checkout <name>切至这个分支,但此时切至的这个分支只是以远程的那个分支为模板(上流分支)创建的本地分支
·如果想在本地创建以远程仓库中有而本地没有的某个分支为上流分支的分支,只需要将命令git checkout -b <name><template>改为git checkout -b <name> origin <template>
·当远程仓库中的分支更新后,如果想同步到本地,除了再fetch一次然后merge之前的版本,更方便的是使用git pull,等同于先fetch再自动merge
·git rebase <name>就是重新排列base,而base就是指commit,即将当前分支从与<name>分支出现差异的地方开始,变为以<name>分支的最新版为基础