git日常使用命令

git 初始化

配置个人信息

首先,你需要执行下面两条命令,作为git的基础配置,作用是告诉git你是谁,你输入的信息将出现在你创建的提交中.

git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"

初始化工作树

然后在你的需要初始化版本库的文件夹中执行

cd $WORK
git init
git remote add origin <你的项目地址> //注:项目地址形式为:http://git.oschina.net/xxx/xxx.git或者 [email protected]:xxx/xxx.git
上述操作的结果是在 $WORK 目录下创建了一个 .git 隐藏目录,它就是所谓的 Git 仓库,不过现在它还是空的。另外 $WORK 目录也不再是普通的文档目录了,今后我们将其称为工作树。

克隆一个项目

git clone <项目地址>

项目管理

生成临时快照 git add

若将工作树下所有文档 (包含子目录)生成快照,可采用以下命令:

cd $WORK
git add .

指定部分如: git add <文件>,git add <文件夹>
所生成的快照被存放到一个临时的存储区域,Git 称该区域为索引。add几个参数说明:

  • git add -A 保存所有的修改
  • git add . 保存新的添加和修改,但是不包括删除
  • git add -u 保存修改和删除,但是不包括新建文件。

提交到本地仓库 git commit

使用git-commit命令可将索引提交至仓库中,这个过程称为提交,每一次提交都意味着版本在进行一次更新。最简单的用法如下:

git commit -m "你的版本更新信息"

如对项目有做删除文件或文件夹的操作,需要用-a参数提交

git commit -am "你的版本更新信息"

提交到远程服务器git push

项目的管理流程 init --> add --> commit --> push;

更新本地工作树git pull

git文档忽略机制.gitignore

其中的 zh 目录存放着 TEX 文档编译时生成的中间文件,因此该目录不应该被Git 所管理。Git 提供了文档忽略机制,可以将工作树中你不希望接受 Git 管理的文档信息写到同一目录下的.gitignore文件中.

cd $WORK
echo "zh" > .gitignore
git add .

有关 gitignore 文件的诸多细节知识可阅读其使用手册:

man gitignore

查看版本历史

git log

想看一下每一次版本的大致变动情况,可使用以下命令:

git log --stat --summary

可查看该次项目版本的更新细节

git show da4b9ce37531bbb43d8187d7a651e228e26f1212

除了使用完整的版本号查看项目版本更新细节之外,也还可以使用以下方式:

git show da4b # 一般只使用版本号的前几个字符即可
git show HEAD # 显示当前分支的最新版本的更新细节

每一个项目版本号通常都对应存在一个父版本号,也就是项目的前一次版本状态。可使用如下命令查看当前项目版本的父版本更新细节:

git show HEAD^ # 查看 HEAD 的父版本更新细节
git show HEAD^^ # 查看 HEAD 的祖父版本更新细节
git show HEAD~4 # 查看 HEAD 的祖父之祖父的版本更新细节

可以对项目版本号进行自定义(添加tag),然后就可以使用自定义的版本号查看对应的项目版本更新细节:

git tag v0.1 dfb02
git show

查看所有tag及注释

git tag -l -n

撤销和恢复

git reset

git-reset 命令有三个选项:--mixed 、 --soft 和 --hard 。我们在日常使用中仅使用前两个选项;第三个选项由于杀伤力太大,容易损坏项目仓库,需谨慎使用。

  • --mixed 是 git-reset 的默认选项,它的作用是重置索引内容,将其定位到指定的项目版本,而不改变你的工作树中的所有内容,只是提示你有哪些文件还未更新。
  • --soft 选项既不触动索引的位置,也不改变工作树中的任何内容,但是会要求它们处于一个良好的次序之内。该选项会保留你在工作树中的所有更新并使之处于待提交状态。

分支版本切换 git checkout branch_name

git 帮助文档man,help

man git reset
git reset --help

你可能感兴趣的:(git日常使用命令)