Git操作

Git操作

基础操作

查看全局配置信息
git config --list
设置全局配置信息
git config --global user.name "wwyz"
初始化本地仓库
git init
将文件加入git版本库
git add "文件名"
拉取代码
git clone "版本库地址" "目录名"
# 快速克隆,克隆深度为1指最近一次commit
git clone --depth=1 "版本库地址" "目录名"
查看文件状态
git status
提交代码
git commit "说明"
git commit --amend # 重新提交
移除文件,移除后文件不在被版本控制
git rm
git rm --cached readme.txt #缓存中移除
移动文件
git mv "文件路径" "目标文件路径"
查看提交文件历史
git log
git log -p -2 #-p选项展开显示每次提交的内容差异,用-2则仅显示最近的两次更新
查看远程仓库
git remote -v
# 添加远程仓库
git remote add pb git://github.com/paulboone/ticgit.git
# 拉取远程代码更新
git fetch pb
# 查看远程仓库的信息
git remote show origin
推送提交的代码
git push origin master
忽略文件

通过在项目根目录配置.gitignore文件忽略要忽略的文件/文件夹。
Java项目一般忽略:.idea、target、out、classes
前端项目一般忽略:.idea、node_modules、dist
.gitignore 格式规范如下:

  1. 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
  2. 可以使用标准的 glob(shell 所使用的简化了的正则表达式)模式匹配。
  3. 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  4. 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
*.[oa]  # 忽略所有以 .o 或 .a 结尾的文件
*~      # 忽略所有以波浪符(~)结尾的文件
Tag打标签

对某一时间点上的版本打上标签,通常结合版本使用。Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。一般我们都建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。

列出已有标签
git tag

分支

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多一样快。

什么是分支

在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先。

新建分支
git branch "分支名"
切换分支
git checkout "分支名"
合并分支
# 将其他分支合并到本分支
git merge "分支名"
分支变基
git rebase
#  将多次提交合并为一次提交,-i表示弹出交互式的界面让用户编辑完成合并操作
git rebase -i  "开始提交点" "结束提交点"
# 将某一段commit粘贴到另一个分支上
git rebase "开始提交点" "结束提交点"  --onto "分支名称"

拓展操作

版本库迁移
  1. 新建新git仓库
  2. 修改旧的git项目的remote地址为新仓库地址
  3. 执行强制push
git push -u origin master -f
统计代码提交数
 git log --oneline | wc -l 
统计代码行数
git log  --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值