远程仓库

1
2
3
4
5
6
7
8
9
# 从远程库拉取
git clone remotepath

# 添加远程库
git init    # 可选,初始化一个新git仓库
git remote add origin remotepath

# 查看远程库信息
git remote -v

工作区与暂存区

工作区有一个隐藏目录.git,是git的版本库。版本库中存储了一个称为stage的暂存区,还有分支信息(图片取自 廖雪峰git教程 ):

git工作区

一个新文件,通过git add后会添加到暂存区,git commit后会提交到分支上。已经在分支中的文件,被修改或删除后,文件也会存在于暂存区。

以下操作结果均记录于暂存区:

文件操作

1
2
3
4
5
# 添加文件
git add [path]

# 删除文件
git rm [path]

撤销修改

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 未提交到暂存区时,撤销工作区修改
git checkout -- <file>

# 已经提交了暂存区,撤销这次提交,重新回到工作区
git reset HEAD <file>

# 已经提交了本地分支,需要回滚到某一个版本
git log       # 查看需要回滚的版本号,只能查看到HEAD前的版本
git reflog    # 查看每一次命令的版本号,能查看所有动作的版本
git reset --hard 版本号

储藏(Stashing)

stash功能用于保存当前工作状态,将修改过的被追踪文件和暂存的变更保存到一个未完结变更的堆栈中,随时可以重新应用。即把当前工作现场“储藏”起来,等以后恢复现场后继续工作。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 查看现有的stash
git stash list

# 保存当前工作现场
git stash

# 恢复工作现场,并删除stash
git stash pop [stash_id]

# 恢复工作现场,不删除stash
git stash apply [stash_id]

# 删除stash
git stash drop [stash_id]

# 清除所有stash
git stash clear

分支操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 创建分支
git branch 分支名

# 切换分支
git checkout 分支名

# 创建并切换
git checkout -b 分支名

# 合并某分支到当前分支
git merge 分支名

# 删除分支 -D 强制删除
git branch -d 分支名 

# 查看分支合并情况
git log --graph

# 从远程抓取分支
git pull

# 推送本地分支到远程分支
git push origin 本地分支名

# 本地分支关联远程分支
git branch --set-upstream-to 本地分支名 origin/远程分支名

tag操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查看标签
git tag

# 创建本地标签
git tag 标签名 [版本号]

# 创建带说明的本地标签
git tag -a 标签名 -m "说明" [版本号]

# 删除本地标签
git tag -d 标签名

# 查看标签说明
git show 标签名

# 推送本地标签到远程
git push origin 本地标签名

# 推送所有未推送过的标签到远程
git push origin --tags

# 删除远程标签
git push origin :refs/tags/远程标签名