git 常用操作

拉代码

git clone ssh://user-name@url

获取远程信息

git fetch (--all)

更新代码

git pull (--rebase| -r)
//(pull 表示把远程仓库的更新拉下来, --rebase 虽然是可选项, 但是一般都建议一起使用,这里涉及到 “基”的概念。

分支

切分支

代码拉下来后默认是在master分支, 需要用 git checkout ref_name切过去

列分支

git branch 列出本地分支
git branch -r列出远程分支

切分支

``git checkout branch_name (执行命令前本地不能有未缓存的提交,否则失败)

新建分支

git branch 'branch_name'
git checkout -b 'branch_name'  // 执行完后会立即切换到新分支
git branch 'branch_name' 'origin/branch_name' //新建远程分支 
git checkout branch_name (等价于 git checkout  -b 'branch_name'  'origin/branch_name' )
//使用远程分支,并在本地建立branch

删除本地分支

git branch -D 'branch_name' //大写D表示强制删除

本地分支与远程分支的对应

特殊情况下,执行 git pull 命令时会提示找不到对应的远程分支, 需要用 git branch --set-upstream-to=<upstream>命令指定一个远程分支.

显示远程分支的url

//if referential integrity has been broken:
git config --get remote.origin.url

//If referential integrity is intact:
git remote show origin

//本地git与远程服务器绑定
git remote add origin git@github.com:xxx.git

提交

本地提交

  • 一般都用图形化工具 citool.用git citool命令可调起。
  • 命令行的方式:
 git add // 把文件加到版本库的管理中 ,执行完后文件在缓存区
 git add --all //将所有文件放入stage中,包括新增加的文件
 git rest // unstaged all files
 git commit -m 'msg' //将stage中文件提交
 git commit -am 'msg' //将modify和 stage 中文件提交,不包括不在stage中的新增文件
 git commit --amend -m‘msg’ 将本次提交和上次提交合并。在本地的提交中使用,还没有push到服务器中

推送到服务器

git push 
git push origin HEAD:branch_name //本地分支名与远程名称不对应时候
git push origin HEAD:refs/for/ref_name //推送到gerrit

注意1:HEAD在LINUX下需要大写
注意2: 不要忘记加 HEAD:refs/for/ 否则有可能会创建一个新分支。

冲突的解决

命令:

git mergetool 'file_path'

git 对比

git difftool --dir-diff(-d) //git open all diff files 
git difftool -d HEAD //stage 中files对比
git difftool -d sha sha^1 // 提交sha的文件变更

git svn

git svn  fetch // 更新svn代码
git svn rebase //更新本分支head到最新

tag

打tag

命令:

git tag V_1.0.0.0 -m “version 1.0”

一般每编一次发布版,都会打上一个tag

将tag推送到远程

git push origin tag_name

注意: 推送到远程的TAG必须得有日志信息,对应于上面 -m 参数后的内容。

gitk使用

查看分支

gitk // 查看当前本地分支
gitk ref_name //查看其他分支
gitk origin/ref_name //查看某个远程分支
gitk --all //查看所有分支

本地修改

常用命令

git reset [--hard|--soft|--mixed] [revision] //reset命令只对入库的文件有效,
git clean –fd //对未入库的文件,可使用 git clean –fd 清除
git reset --hard //回退所有的内容

//可以回退某一个提交,这个操作相当于是把当时那个提交逆向PATCH了一次。
//操作完成后,需要COMMIT到仓库。
git revert –n sha1-id
//回退某一次的提交某一个文件
git checkout sha1-id file (file1...)


git stash

//工作到一般时有紧急任务时, 配合 
git stash
git stash pop
git stash save -m'log'
git stash -p //stash 某一文件
// y - stash this hunk
// n - do not stash this hunk
// q - quit; do not stash this hunk or any of the remaining ones
// a - stash this hunk and all later hunks in the file
// d - do not stash this hunk or any of the later hunks in the file
// g - select a hunk to go to
// / - search for a hunk matching the given regex
// j - leave this hunk undecided, see next undecided hunk
// J - leave this hunk undecided, see next hunk
// k - leave this hunk undecided, see previous undecided hunk
// K - leave this hunk undecided, see previous hunk
// s - split the current hunk into smaller hunks
// e - manually edit the current hunk
// ? - print help// 
git stash clear // delete all stashes at once

git 提取patch.

  1. 可以先使用git citool本地提交。
  2. git format-patch -w head~1
  3. 使用 git reset --hard 撤销本地提交.
  4. 使用gitk查看是否撤销本地提交。
  5. 应用patch.
git diff --binary > xxx.patch //生成patch
git apply xxx.patch   //好用
git am xxxxxx.patch   //不好用.

git 回退

git reset HEAD~1
git reset HEAD^

(master分支向前回退一个提交。gqg:回退本地提交,恢复到提交前更改状态, 或者用:git reset HEAD~1 1表示回退一次提交,N表示回退N次提交).

  • 只要有.git目录 就可以使用git reset --hard 把代码恢复出来。

git 修改只有大小写区别的文件

git mv (--force) myfile MyFile
(mv: allow renaming to fix case on case insensitive filesystems)

revert某个提交:

  1. 使用gitk, 查看要revert的提交,把SHA1 ID复制下来.
  2. git revert -n xxxxxxxxxxxxxxxxxxxxxxxxxxxx
  3. git citool 提交然后push.

cherry pick

git cherry-pick "branch_name"  //cherry pick "branch_name" 最上方修复,并提交
git cherry-pick "sha-id"  //cherry pick 某一次提交

回退制定版本

git checkout 'SHA' //回退到制定'sha'值

git 配置

  1. 修改git默认的编辑器nano为vim的方法git config --global core.editor vim
  2. 指定全局 ignore 文件 git config --global core.excludesfile '/Users/xx/.gitignore_global'
  3. 修改某个git库下的用户名和邮箱
git config user.name 'user-name'
git config user.email 'email'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,406评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,976评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,302评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,366评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,372评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,457评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,872评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,521评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,717评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,523评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,590评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,299评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,859评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,883评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,127评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,760评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,290评论 2 342

推荐阅读更多精彩内容

  • 常用命令: 查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help gi...
    even_cheng阅读 283评论 0 3
  • 获取与创建项目 创建仓库的途径有:在本地已有的目录,初始化一个新的;克隆复制一份别人的项目。 git init 在...
    daking阅读 6,542评论 3 48
  • 参考文章 1、 获取帮助 有这三种方法 2、 取得项目的git仓库 初始化一个新仓库 用Xcode的同学就不要...
    刘大帅阅读 6,891评论 0 42
  • 今天读了一篇简友的文章《讨好者》,分析得比较透彻。其中很多内容都感同身受,曾曾经约数十载都是在做讨好者。过得不开心...
    下一秒先生阅读 126评论 0 0
  • 经过北美置业科普系列之后,相信各位亲爱的读者们对在美国买房或多或少有了一定的概念。(什么,还没有读?亲,热门文章里...
    精彩美游阅读 227评论 2 0