分区
git分为三个区域,一个工作区(working directory),一个版本库(repository)版本库又可以分为stage和master两部分。
工作区是直接操作修改的地方,文件修改之后,当前文件就在工作区中。
stage又叫暂存区,使用add命令就可以将工作区中的内容传递到stage中。
master作为分支,使用commit命令就可以将stage中的内容传递到master中。
功能用法
提交stage:使用git add 文件名
可以将工作区中的文件提交到stage区
提交master:使用git commit -m"备注内容"
,可以将stage中的内容提交到master中
status命令:检查工作区中的文件状态,是否有文件修改但是未提交到stage,是否存在新创建的文件。使用add命令后,再次检查状态,文件均提交且存放在stage中。使用commit提交后,再次检查状态,如果没有对工作区文件进行修改,则工作区就是干净的。
修改提交的问题:第一次修改后add到stage中,进行第二次修改,然后commit提交,结果就是第一次修改被提交,第二次修改没有被提交。可以再次add加commit后提交,也可以等第二次修改后再add 两次修改都到stage中后,一起commit。
git diff HEAD – 文件名,可以查看工作区和版本库master中最新版本的区别。
撤销修改 工作区添加错误信息,add到stage中,此时如何撤销。git restore --staged 文件名
此刻会将stage中的内容退回到工作区中,使用git restore 文件名
会将工作区中的修改信息删除。
另一种方法:使用命令git reset HEAD 文件名
,回到工作区,使用命令git checkout -- 文件名
,删除工作区中的修改。
若已经commit,则使用版本回退。
版本回退:git log
命令可以查看修改提交的历史记录git reset --hard HEAD^
命令可以回退到上一版本,但是此时最新版本使用log命令就无法看到了,git reflog
可以记录每一条修改命令和id值。
使用git reset --hard 版本id值
,可以切换到任意你想要的版本。
删除文件:rm test.txt
删除工作区中的文件,使用status后可以看到通知test文件被删除,若想删除stage中的内容,则git rm test.txt
,并且提交commit到master中。若是要从stage和master中恢复到本地,则使用git checkout -- test.txt
或者git restore -- test.txt
都可将误删文件恢复到最新版本。
同步推送到github:git push -u origin master
第一次推送master分支的所有内容;git push origin master
推送最新修改。
克隆到本地仓库:git clone git@github.com:用户名/库