Git
Git 有三种状态: 已提交(committed)、已修改(modified) 和 已暂存(staged)。
- 已修改表示修改了文件,但还没保存到数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交表示数据已经安全地保存在本地数据库中。
这会让Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
基本的 Git 工作流程如下:
- 在工作区中修改文件。
- 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
创建新的仓库
git init # 创建仓库/初始化一个仓库
ls -a
# Initialized empty Git repository in .git/
git add . # 给当前目录的所有文件创建快照,当前快照存储在暂存区域,又称为索引
git commit -m 'msg: first commit' -a # 将索引内容保存在版本库中
git add
: 添加快照
git add file1 file2
添加file1, file2 到暂存区
echo "first" > test.txt
git add test.txt # 添加到暂存区,创建快照/索引
git status # 查看目前git状态
git commit -a
:对已经存在暂存区的文件进行暂存+提交
首先进行git add,之后才能进行git commit
git diff
:显示已经暂存的文件在暂存区及工作区的差异
Git 分支
git branch
:显示目前git分支
git checkout newbranch
:创建并切换到新的分支
git branch experiment
git branch
git branch
显示fatal: Not a valid object name: 'master'.
, 说明master分支不存在。原因是目前没有进行commit
操作,而分支的指针**指向已经提交的,**只有提交了才能有master。
git log
:查看git 提交历史记录
git merge newbranch
:切换到其他分支后,合并当前分支和新分支
Git 远程仓库
git push origin master
:将目前的分支推送到远程服务器
git remote show <remote>
:查看远程服务器信息
Git 标签
git tag
:列出当前标签
git tag -a tagname -m 'annotation'
git push origin --tags
git show
:展示标签与提交信息
$ git show v1.4
tag v1.4
Tagger: Ben Straub <ben@straub.cc>
Date: Sat May 3 20:19:12 2014 -0700
my version 1.4
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number