git的常用命令

2020-11-04 1 条评论 506 次阅读 0 人点赞

文件的三种状态

  • 已提交
    表示文件已经安全的保存在本地数据库中
  • 已修改
    表示修改了文件,但还没保存到数据库中
  • 已暂存
    表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中

git项目的三个工作区域

  • 工作区
    电脑里能看到的目录,比如自己创建的本地项目目录
  • 暂存区
    git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD
  • git仓库
    工作区有一个隐藏目录.git ,这个不算工作区,而是Git的版本库

相关命令

```

基本流程命令

git init # 初始化,在本地当前目录生成一个git项目
git add # 将文件或这目录添加到暂存区里
git status # 查看暂存区的状态
git commit -m # 将暂存区的文件提交到版本库
git commit -am # 将add暂存区和提交合并到一步
git rm # 将删除和add合并到一步
git mv # 将重命名和add合并到一步

对象查看命令

git cat-file -t [HASH] # 查看对象的类型
git cat-file -p [HASH] # 查看对象的内容
git rev-parse SORT_HASH # 查看完整的哈希值
git ls-files -s # 查看文件索引信息

查看历史

git log <--oneline> # 常看当前分支的提交操作
git reflog # 查看HEAD指针的所有操作

文件操作

git checkout -- [FILE] # 将工作区的文件恢复到暂存区(如果有)或的状态,如果没有就指向版本库最新提交的状态
git reset HEAD # 将已经暂存到暂存区的变更撤销(等同于git reset --mixed HEAD)
git reset --hard HEAD # 将最近提交中的内容同时同步到工作区和暂存区,放弃工作区和暂存区的所有修改
git reset --hard [commit HASH] # 将指定提交中的内容同时同步到工作区和暂存区,放弃工作区和暂存区的所有修改,并将HEAD指针指向指定提交
git reset --soft [commit HASH] # 将HEAD指针指向指定提交,不改变工作区和暂存区的内容
git reset HEAD [FILE] # 将文件移除暂存区(索引区)
git reset --hard [HEAD]|[commit HASH]

分支操作

git branch [BRANCH] # 创建分支
git checkout [BRANCH] # 切换到分支
git checkout –b [BRANCH] # 创建并切换到分支
git reset HEAD [COMMIT HASH] # 进入分离头状态

文件差异比较

git diff -- ... # 比较工作区与暂存区之间的文件差异
git diff HEAD【or some commit HASH】 ... # 比较工作区与最新提交(或者某次提交)之间的文件差异
git diff --cached # 比较暂存区与最新提交之间的差异
git diff [commit HASH] [commit HASH] # 比较两次提交之间的文件差异

各次提交的简易写法:

HEAD 表示当前分支的最新提交
HEAD~ 表示当前分支的最新提交的前一个提交(即最新的第二个提交,也就是最新提交的父提交)
HEAD(HEAD~2) 表示当前分支的最新提交的前前提交(即最新的第三个提交,也就是最新提交的祖父提交)
HEAD~~~(HEAD~3) 表示当前分支的最新提交的前前前提交(即最新的第四个提交,也就是最新提交的曾祖父提交)

分支操作

git branch [BRANCH_NAME] # 创建分支
git branch -b [BRANCH_NAME] # 创建并切换到新创建的分支
git merge [BRANCH_NAME] # 合并分支
git branch -d|-D [BRANCH_NAME] # 删除|强制删除分支

远程仓库

git clone # 将远程仓库克隆到本地
git remote -v # 查看远程仓库
git branch -v # 查看本地分支与远程分支的对应情况
git push origin master:master # 将本地仓库内容推送到远程仓库
git remote add [origin] [REPO_URL] # 为本地仓库指定关联远程仓库
git push -u|--up-stream [origin] [BRANCH] # 将本地分支的内容推送到远程仓库(如果没有同名分支,则创建),并建立远程仓库分支同本地分支的管理
git fetch # 获取远程仓库的最新代码
git merge origin/[BRANCH] # 将远程仓库代码的改动同步到本地同名分支
git pull origin [BRANCH] # 将fetch和merge合并到一步

once

这个人太懒什么东西都没留下

文章评论(1)

  • porno

    If you want to use the photo it would also be good to check with the artist beforehand in case it is subject to copyright. Best wishes. Aaren Reggis Sela

    2020-11-13