Git 标签

$ git tag --help 	# 查看帮助

[查看标签]

$ git tag [-l [regular]]		# 查看所有标签列表[list [正则过滤结果]]
$ git show <tag-name> 	# 查看标签tag-name信息

[创建/切换标签]

$ git tag <v1.0> 	# 创建轻量级标签v1.0
$ git tag <tag-name> <commitID> 	# 指定CommitID处创建标签tag-name
$ git tag [-a] <tag-name> -m "<info>" 	# 创建待注释[annotate]信息info的标签tag-name

$ git checkout <tag-name> 	# 切换状态到指定标签提交处

[删除标签]

$ git tag -d <tag-name> 	# 删除标签tag-name(多个标签用空格分隔)
$ git push remote_name  :refs/tags/<tag-name>	# 删除远程标签(冒号前的空格不能省略)

[获取/推送远程标签]

$ git pull [remote_name] --tags 	# 获取远程所有标签(remote_name可选)
$ git push [remote_name] --tags 	# 推送所有未推送到远程的本地标签(注:存在两条横线,横线与tags之间没有空格)
$ git push [remote_name] <tag-name>		# 将标签tag-name推送到远程

Git 分支

$ git branch --help     # 查看关于git branch帮助

[查看分支]

$ git branch    # 查看本地分支(星号*标注为当前分支)
$ git branch -r     # 查看所有远程[remote]分支
$ git branch -a     # 查看所有[all]本地及远程分支
$ git branch -v     # 查看各个分支最后的提交
$ git branch -vv    # 在[-v]参数结果增添本地分支对应的远程分支

[创建\切换\重命名分支]

$ git branch <new_branch>       # 创建新分支(继承当前分支最新提交来创建)
$ git branch <new_branch>  commit_id  # 以指定的提交版本commit_id来创建新分支
$ git checkout <branch>     # 切换分支
$ git checkout [commit_id] -b <new_branch>      # 继承当前分支最后一次提交(或指定某次提交)创建并切换到新分支
$ git checkout <commit_id>      # 切换到某次提交,无分支信息;若再切换回分支则会丢弃切换之前的修改
$ git checkout -b <new_branch> <master> # 继承master分支创建并切换新分支
$ git branch -m <branch> <new_branch>       # 重命名分支

[删除分支]

# 删除本地分支
$ git branch [-d | -D] <branch>
    -d      # 删除[delete]本地n支(存在修改或未合并删除失败,多个分支用空格分隔)
    -D      # 忽略修改强制删除本地分支(多个分支用空格分隔)

# 删除远程分支
$ git branch -d -r origin/<branch>  # 删除远程分支
$ git push origin :<branch>     # 冒号前面的空格不能少,即把空分支push到远程达到删除效果[since Git v1.5.0]
$ git push origin --delete <branch>     # [since Git v1.7.0]

[合并分支]

$ git branch --merged   # 查看已合并的分支列表
$ git branch --no-merged    # 查看未合并的分支列表
$ git merge <branch>    # 合并其他分支到当前分支,发生冲突修复后再次提交

[关联分支]

# 设置本地分支跟踪远程分支(与远程分支关联),分支设置跟踪后直接git pull、git push即可直接查找到远程分支进行操作
$ git branch --set-upstream-to=origin/<branch> <branch>  (推荐)
$ git branch --set-upstream <branch> <origin/branch>    

本地跟踪远程分支,会在当前项目的config文件产生如下配置

[branch "master"]
    remote = origin
    merge = refs/heads/master

Git Commands

简单描述Git常用命令,其都是在git bash中执行;linux大部分命令在git bash中都能使用(如ls、cat、vi …),但是也存在部分不能使用(如ll命令等),下面记录以下git特有的命令:

常用命令

  • git init : 初始化项目;项目根目录下执行该命令,将该项目交给git工具进行管理,生成目录 .git
  • git clone url: 克隆远程项目,url为远程项目地址(github…)或者自搭建服务器地址;克隆时会将远程所有分支全部复制到本地
  • git status: 查看文件状态
  • git add filename: 使git开始跟踪该文件,此时该文件处于暂存状态
  • git commit -m “infomation”: 提交文件至暂存区
  • git remote show origin: 查看远程关联

阅读全文

gitignore 配置

使用Git进行项目管理中,如需将某些文件或目录不纳入Git的管理,则需在.git文件夹同级目录(项目根目录)配置忽略文件 .gitignore

 $ vi .gitignore   # 直接创建并且编辑(如存在直接编辑)

文件配置忽略规则:

>  空行不匹配任何内容
>  井号[#]表示该行为注释行
>  顺斜杠[/]表示目录
>  反斜杠[\]表示转义字符("\!"意为匹配"!")
>  星号[*]表示通配符
>  问号[?]表示匹配单个字符
>  感叹号[!]表示忽略指定模式以外的文件或目录(表示匹配的模式取反)

skills

  • 通常一条忽略规则或注释单独一行; 忽略规则行尾不允许在使用注释语句

  • Git对忽略文件是从上到下进行匹配;如前面的规则范围较大,则后面的规则将不生效

  • 忽略规则只对未加入git管理的文件生效;若需要忽略文件已经加入git管理,需要先使用 git rm [-r] --cached <filename> 将文件[或目录]移除git的管理;