git常用命令

框架的约束应该是一种规则(rules),而不是注意事项(caveats),做好这个区分就知道框架应该做什么,不应该做什么了。

git fectch 只是将文件放到git数据库中,看不到。
git checkout FETCH_HEAD 迁出到工作目录中

git chekout --help:查看对应命令帮助信息

git log MEGER_HEAD
git log FETCH_HEAD

//回到上一个提交
git reset --hard HEAD~

git stash 暂存修改过的代码,未提交前pull代码的操作
git stash pop :pull代码后提出暂存的代码
git checkout :切换分支
git status: 查看当前状态(包括当前分支等)
git log:

git reflog:生成的head
git reset --hard HEAD :线上代码一致,丢弃本地修改
git reset --hard HEAD@{1} 回滚到该节点
//改文件与最新库文件保持一致
git checkout HEAD – src/cn//guild/biz/management/armygroup/ArmyGroupListFragment.java
//解决冲突保持丢弃本地修改
git checkout --ours – src/cn/
/guild/biz/management/armygroup/ArmyGroupListFragment.java

git pull – rebase origin/patch_1.2.2 :git pull --rebase
git branch:
git tag:

git log --oneline

git add .//添加修改的文件

git commit -a #保存修改的状态

git commit -m “comment”
git commit --amend""

git push

tag—》branch //git 拉取tag代码 需要从tag中建立一个分支才行

git checkout fetch #无需切换工作目录拉取所有的git信息

//基于tag拉取分支

$ git checkout release_v1.3.0_1407082001 -b v1.3.0

  • 从master拉出1.2.0封版分支
    git checkout master
    git checkout -b freeze_1.2.0
  • 基于version_freeze_xxx的最新commit打一个1.2.0发布包代码的tag
    git checkout freeze_1.2.0
    git tag -a release_v1.2.0_1405221950 -m ‘kk_v1.2.0_android_release_b1405221950.WD_5.apk’
  • 确保当前master分支的代码是最新的,同时把version_freeze_1.2.0分支上所有的commit合并回master分支,再删除version_freeze_1.2.0分支
    git checkout master # 切换到master分支
    git pull --rebase origin master # 拉取最新代码
    git merge freeze_1.2.0 # 合并freeze_1.2.0分支的所有提交
    git branch -d freeze_1.2.0 # 删除本地的freeze_1.2.0分支
    git push origin :freeze_1.2.0 # 删除远程的freeze_1.2.0分支git
  • 把新加的tag提交到远程服务器
    git push --tags
  • git push origin [branch_name]

export LANG=“en_US”
//
git cherry-pick “commitId”
//合并分支
git cherry -v v2.1.0_LiveVoiceChat master:diff两个分支代码

git merge v2.1.0

加了 v2.1.0_LiveVoiceChat 分支,上面的命令输出前面带 + 号的表示没有 pick 到 v2.1.0_LiveVoiceChat 分支上的。-代表已经pick过了
解决冲突 后
git add .
git cherry-pick --continue

解决冲突后执行git命令顺序
git add .
git rebase --continue

ctrl+r:命令搜索

提交部分代码
<1>先 git reset head 暂存区代码
<2>再git add 需要提交的代码
<3>再git commit -m “XXX”

修改前一次 commit :
git commit --amend

查看 当前的commit 是否提交到 push 有不一样就说明还没有push 到origin
git diff origin/feature_branch_1 feature_branch_1

查看分支作者
git for-each-ref --format=’%(committerdate) %09 %(authorname) %09 %(refname)’ | sort -k5n -k2M -k3n -k4n

快捷键
ctrl+r搜索 ctrl+a 行头, ctrl+e 行末

sh -o igncr sw

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

创建轻量标签

$ git tag v0.1.2-light
git tag -l

创建附注标签

git tag -a v0.1.2 -m “0.1.2版本”
dos2unix …*.sh:windowns下执行脚本回车换行符影响脚本运行定位问题

//统计代码总行数
git log --pretty=tformat: --numstat
| gawk ‘{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf “added lines: %s removed lines : %s total lines: %s\n”,add,subs,loc }’ -

git log --author=“tangsj”

//拆分git pull,防止rebase 操作
git fetch
git merge --no-ff origin/branch_X

git rm -r -n --cached [app/build] :-n 加上这个参数,执行命令时,只是展示要删除的文件列表预览
git rm -r --cached [app/build]: 执行命令 从git 中移除[]内的文件/夹

删除分支

git branch -r -d origin/branch-name
git push origin :branch-name

编辑git配置

git config -e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值