Git - 介绍
五种状态间的顺序操作
四个区
工作区(Working Area) 暂存区(Stage) 本地仓库(Local Repository) 远程仓库(Remote Repository)
五种状态
未修改(Origin) 已修改(Modified)&未追踪(Untracked) 已暂存(Staged) 已提交(Committed) 已推送(Pushed)
顺序操作
第零步:工作区与仓库保持一致 第一步:文件增删改,变为已修改状态 第二步:git add ,变为已暂存状态 $ git add --all # 当前项目下的所有更改 $ git add . # 当前目录下的所有更改 $ git add xx/xx.py xx/xx2.py # 添加某几个文件 第三步:git commit,变为已提交状态 $ git commit -m"<这里写commit的描述>" 第四步:git push,变为已推送状态 $ git push -u origin master # 第一次需要关联上 $ git push # 之后再推送就不用指明应该推送的远程分支了 $ git branch # 可以查看本地仓库的分支 $ git branch -a # 可以查看本地仓库和本地远程仓库(远程仓库的本地镜像)的所有分支
下图详细介绍:

五种状态间的撤销操作
已修改,但未暂存: $ git diff # 列出所有的修改 $ git diff xx/xx.py xx/xx2.py # 列出某(几)个文件的修改 $ git checkout # 撤销项目下所有的修改 $ git checkout . # 撤销当前文件夹下所有的修改 $ git checkout xx/xx.py xx/xx2.py # 撤销某几个文件的修改 已暂存,未提交: git reset --hard HEAD^ 彻底撤销最近的提交。引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。自上一次以来的提交全部丢失。 git reset --soft HEAD^ 工作区和暂存区不改变,但是引用向前回退一次。当对最新的提交说明或者提交的更改不满意时,撤销最新的提交以便重新提交。 git reset 或者git reset HEAD 仅用HEAD指向的目录树重置暂存区,工作区不会受到影响,相当于将之前用git add 命令更新到暂存区的内容撤出暂存区。引用也未改变,因为引用重置到HEAD相当于没有重置。 git reset -- filename 或者 git reset HEAD filename 仅将文件filename 的改动撤出暂存区,暂存区中其他文件不改变。相当于命令git add filename 的反射操作。
参考:
https://geektutu.com/post/git-four-areas-five-states.html
https://try.github.io/levels/1/challenges/1
https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000
http://www.runoob.com/git/git-remote-repo.html
posted on 2018-03-18 23:40 TrustNature 阅读(11) 评论(0) 收藏 举报
浙公网安备 33010602011771号