Git的命令

301 阅读3分钟

前言

首先要理解工作区 暂存区 版本库 远程仓库

  1. 工作区:电脑存放文件的地方
  2. 暂存区:git init后创建的.git文件。里面用来存放记录代码文件改动的文件,只用来保存即将提交的文件列表信息
  3. 版本库:.git文件中用于保存提交的所有版本信息,其中head指向最新的版本
  4. 远程仓库:托管代码的服务器

文件状态

  1. Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

  2. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  3. Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过,返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

  4. Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified

  • 流程

    新建文件--->Untracked

    使用add命令将新建的文件加入到暂存区--->Staged

    使用commit命令将暂存区的文件提交到本地仓库--->Unmodified

    如果对Unmodified状态的文件进行修改---> modified

    如果对Unmodified状态的文件进行remove操作--->Untracked

工作流程

  1. 在工作目录添加修改等操作文件
  2. 将修改的信息提交到暂存区
  3. 将暂存区的文件提交到git仓储中
  4. 将本地版本库推到远程仓库中

基本命令

  • 初始化

    git init ---创建本地代码库

    git clone [url] ---下载项目代码及代码历史

  • 文件状态查看

    git status [filename] ---查看指定文件状态

    git status ---查看所有文件状态

  • 工作区《=》暂存区

    git add . ---将所有文件添加到暂存区

  • 工作区/暂存区《=》版本库

    git commit -m 'text' ---暂存区提交到版本库

    git reset HEAD^ /filename ---撤销提交

    git rm -r [file-name.txt] ---删除文件(或文件夹)

  • 远程操作

    git push ---本地版本上海传到远程仓库

    git pull ---本地合并最新远程代码分支

  • 隐藏目录

    git stash ---本地修改放置到脏目录

    git stash list ---显示保存的工作进度列表,编号越小代表保存进度的时间越近。

    git stash clear --- 清空隐藏目录

    git stash apply stash@{num} --- 恢复到工作区,stash@{num}是可选项,带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}

  • 分支操作

    git branch

    git branch [new branch] --- 创建新分支

    git branch -d [branch name] ---删除分支

    git checkout [branch name] ---切换分支

    git diff [source branch] [target branch]--- 合并前预览更改

    git merge [branch] ---合并分支

  • Git fetch 只是从远程获取最新版本到本地,不会merge(合并),Git pull:从远程获取最新版本并merge(合并)到本地

  • 其他、

git config --list ---git信息查看

git cinfig --global user.name 'xxx' ---设置git信息

git --version ---git 版本

git log ---变更查看

git --help ---帮助

git remote add origin ssh://git@github.com/[username]/[repository-name].git ---添加一个远程仓库

.gitignore 文件

未完待续。。。

git提交规范

对不必要的文件进行忽略,使其不被git追踪。

资源:

  1. Git的命令
  2. 工作区、暂存区、版本库、远程仓库
  3. Git 保存和恢复工作进度(stash)