一、常用基本操作
1.重命名本地git分支:

git branch 查看位于哪个分支

git checkout 切换到想要改名的分支

git branch -m [原分支名] [要修改成的分支名]

2.删除远程分支:
  1. git branch -a 查看所有分支
  2. git push origin --delete [远程分支名]
3.删除本地分支:

git branch -d [本地分支名]

4.三种撤销操作:

git commit --amend : 撤销并重新编辑上一次commit的内容,并commit,

git checkout -- : 将暂存区的文件替换成其在工作区的状态。(可以理解为在 未 commit 之前的状态,即将最近一次的所有没commit 的修改作废,还原)

git reset HEAD -- <六位版本码> : 切回之前某个状态下的版本。 获取六位版本号用 git log --oneline 命令

5.查看已存放:

git ls-files

查看还没添加的文件:

git status

6.创建git命令别名 alias:

sudo vi ~/.gitconfig

在末尾加入比如如下内容:

[alias]
ch = checkout
cm = commit
ph = push
pl = pull
st = status
br = branch
hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short type = cat-file -t
dump = cat-file -p (个人爱好,别名可以自定义) 然后 :wq 保存即可。

后面使用这些 git 命令式,就可以少一些打字时间了。

7.将本地非 git 项目初始化为 git 项目并推送远程 github 仓库:
1.在 github 上new 一个 repository

2.cd projectDir

git init

git remote add origin git@github.com:地址/远程项目名称.git

3.git add .

git commit -m "commit description"

git push origin master
二、git tag 相关操作

标签可以针对某一时间点的版本做标记,常用于版本发布。

1、列出标签

$ git tag # 在控制台打印出当前仓库的所有标签

$ git tag -l ‘v0.1.*’ # 搜索符合模式的标签

2、打标签

git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。

2.1、创建轻量标签

$ git tag v0.1.2-light

2.2、创建附注标签

$ git tag -a v0.1.2 -m “0.1.2版本” 创建轻量标签不需要传递参数,直接指定标签名称即可。 创建附注标签时,参数a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。

2.3、补打标签

$ git tag -a v0.1.1 9fbc3d0 打标签不必要在head之上,也可在之前的版本上打,这需要知道历史某个提交(通过git log获取)。

3、切换到标签

与切换分支命令相同,用git checkout [tagname] 先列出所有标签 $ git tag

再用git show命令可以查看标签的版本信息: gitshowv0.1.2再切换标签gitshowv0.1.2再切换标签 git checkout v0.1.2

4、删除标签

误打或需要修改标签时,需要先将标签删除,再打新标签。 $ git tag -d v0.1.2 # 删除标签 参数d即delete的缩写,意为删除其后指定的标签。 给指定的commit打标签 打标签不必要在head之上,也可在之前的版本上打,这需要你知道某个提交对象的校验和(通过git log获取)。

删除远程 tag: git push origin :refs/tags/[tag名], 比如 git push origin :refs/tags/v1.0.1

5、标签发布

通常的git push不会将标签对象提交到git服务器,我们需要进行显式的操作: $ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器

$ git push origin --tags # 将本地所有标签一次性提交到git服务器

6、实战

想看之前某个标签状态下的文件,可以这样操作: 1.git tag 查看当前分支下的标签 2.git checkout v0.21 此时会指向打v0.21标签时的代码状态,(但现在处于一个空的分支上)