git-相关知识

git操作

1、git初始化仓库

git init 初始化本地仓库

2、提交

==流程:工作区—(add)—>暂存区—(commit)—>本地仓库—(push)—>远程仓库==

git add .  或者  git add test.html  //提交到暂存区
git commit -m '注释文字'             //把暂存区的改动提交到本地仓库
git push                            //把本地仓库推到远程仓库   

git add .                   //add所有文件
git rm --cached abc.txt     //add所有文件之后,不想add abc.txt文件
git commit --amend -m "这才是正确提交" // push之前发现commit信息错误,更改commit信息

git add -u  //将文件的修改、文件的删除,添加到暂存区。
git add .   //将文件的修改,文件的新建,添加到暂存区。
git add -A  //将文件的修改,文件的删除,文件的新建,添加到暂存区。

3、撤销

撤销然后修改提交
    git reset head^
    git add .
    git commit -m '再次修改提交'
    git push origin feature/add-ptjy-home-swiper --force  //会覆盖提交上次的,谨慎操作,有可能会覆盖掉别人代码

git clean -fd                   //一次性删除新增的文件 'Untracked files' 

删除的文件恢复
1. git status
2. git reset HEAD aaa.txt
3. git checkout aaa.txt
1、未add,未commit 
    git checkout -- xxx.txt  //还原对工作区的修改,恢复原状
2、已add,未commit
    撤销单独的文件  git reset HEAD xxx.txt  或者  git reset XXXX.txt
    撤销所有文件    git reset HEAD 
3、已add,已commit
    git reset --hard HEAD^           //回退到上一个版本,但是改动会被清掉
    git reset head^                 //回退上一个版本,回到commit之前,但是改动还是会保留
4、commit之后push之前要修改commit信息
    git commit --amend -m "修改的注释信息"
5、已add,已commit,已push
    git reset head^
    git add .
    git commit -m '覆盖提交'
    git push origin abc --force  (如果不是自己的分支,这样有可能会冲掉别人的代码)

4、分支

git checkout abc         //切换到abc分支
git checkout -b abc      //新建abc分支并切换
git push --set-upstream origin abc //本地新建分支abc提交到远程仓库并与之进行关联
git branch               //查看本地分支
git branch -a            //查看所有分支
git branch -r            //查看远程仓库的分支
git branch -vv           //查看本地分支与远程分支的映射关系
git branch -u origin/abc abc 或者 git branch --set-upstream-to origin/abc abc  //建立当前分支与远程分支的映射关系
git branch --unset-upstream //撤销本地分支与远程分支的映射关系
git remote show origin   //查看远程仓库与本地的关联
gir remote prune origin  //把远程仓库已删除的分支,在本地删除
git branch -D abc        //删除本地abc分支
git branch -m oldName newName //修改本地分支名字

5、暂存

暂存
git stash       //暂时把修改的内容暂存起来,会还原回初始的样子
git stash save <message> //暂存起来并起名
git stash pop   //取出最近一次暂存并删除记录列表中对应记录


git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p

git stash list //查看暂存区的所有暂存修改
git stash apply stash@{X} //取出相应的暂存
git stash drop stash@{X} //将记录列表中取出的对应暂存记录删除

6、分支合并

git merge abc  //把abc分支合并到当前分支
git rebase orgin/abc //合并分支abc到当前分支

7、版本

git reflog         //查看版本号
git reflog -2      //查看最近2次的版本信息
git reset HEAD^    //回退所有内容到上一个版本(本地修改代码不变)
git reset HEAD^ a  //回退a 这个文件的版本到上一个版本(本地修改代码不变)
git reset id       //id:版本号  回退到某个版本(本地修改代码不变)
git reset --hard  HEAD^  //回退所有内容到上一个版本(本地修改丢失)
git reset --hard  12345  //将本地的状态回退到12345版本(本地修改丢失)
git reset –hard origin/master  //将本地的状态回退到和远程的一样

8、tag标签

git tag v1.0                        //创建tag
git tag -a V1.2 -m 'release 1.2'    //创建了本地一个版本 V1.2 ,并且添加了附注信息 'release 1.2'
git tag v0.9 123456                //对某次commit(123456)添加tag
git tag                             //查看tag
git show V1.2                       //显示附注信息
git push origin <tagname>           //推送某个本地标签到远程
git push origin --tags              //一次性推送全部尚未推送到远程的本地标签
git tag -d V1.2                     //删除本地 V1.2的版本
git push origin :refs/tags/V1.2     //推送的空的同名版本,删除远程tagV1.2

9、场景

1、情景:如果正在A分支做,这时候要切到B分支改bug,改完回来再继续做A
   解决:
        git status 
        git stash 
        git checkout B 
        改bug 
        git checkout A 
        git stash pop

2、情景:A分支有修改,想把A分支的修改迁移到新建B分支
   解决:
        (A分支上)
        git add .
        git commit -m 'stash'
        git checkout -b B
        git reset head^

3、rebase同步分支
情景:master分支上新建一个test分支做开发,开发完成之后,准备合并到master,发现master分支已有新的2次提交,
      这时候需要把那2次新提交合并到test分支上,但是此时test分支已经 add commit 但并没有push;
解决:(test分支上)
        git pull
        git rebase origin/master
        处理冲突
        git add .
        git rebase --continue
        (如果这时候因为test分支多次commit,仍有错误冲突)
        处理冲突
        git add .
        git rebase --continue
        (直到没有错误冲突)
        git push
情景2:如果test分支没有add commit
解决:(test分支上)
        在rebase之前需要先stash一下
        然后再进行rebase操作
        处理完冲突,合并,
        stash pop,
        add commit push.

4、merge分支同步
B分支: git pull ----> git merge origin/A ----> 解决冲突 ----> git add commit push

5、本地新建分支,并提交到远程仓库,然后记得关联本地仓库
git checkout -b abc ----> git add commit ----> git push --set-upstream origin abc

6、撤销 git reset head^
        查看git reflog
        找到相应的commit id
        git reset --hard 123321

7、git误删除恢复
        git reflog查看操作记录
        找到删除的hashID
        git reset --hard hashID
        
8、删除中间的某次commit
        git log -2
        git rebase -i head^^
        更改 pick --> drop
        git push -f
        
9、git仓库迁移,本地要做的配置
        git remote rm origin
        git remote add  origin  git@new-addr.git

10、初始化提交

新建远程仓库,并clone到本地
    git clone git@mdev.csc.com.cn:xiangdong.bu/aaaaaa.git
    cd aaaaaa
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master
已存在的文件夹提交到git远程仓库
    cd existing_folder
    git init
    git remote add origin git@mdev.csc.com.cn:xiangdong.bu/aaaaaa.git
    git add .
    git commit
    git push -u origin master
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352