zoukankan      html  css  js  c++  java
  • git 日常命令

     
    #git stash命令
    git stash pop #取回暂存的内容,自动检测合并
    git stash list #查看"暂存区"的所有记录
    git stash clear #清空"暂存区"
    git stash pop #取回暂存区第一个记录
    git stash apply 0 #取回"暂存区"指定的记录 编号0
    git stash drop 0 #删除"暂存区"指定记录
    git reflog #查看包括回滚的历史记录
    
    #回滚到指定版本. 指定版本标识
    git reset --hard 9bbb0ef17234d40c941fec0f0408d994b52a5060 
    
    #git branch 命令
    git branch #查看分支
    git branch dev1 #创建新分支dev1 即拷贝当前所有代码到新分支
    git checkout dev1 #进入dev1分支
    git checkout master #回到主分支 
    git branch bug #创建新分支bug, 然后修复bug完毕.
    git checkout master #切回master
    git merge bug #把bug分支合并过来. 
    git branch -d bug #再删除分支
    git checkout dev1 #回到dev1分支,继续开发新功能.
    
    #本地仓库拉取远程仓库(已有本地仓库)
    git init
    git config --local user.name  "X  "XXX"
    git config --local user.email "XX "l "XXX@yhglobal.com"
    git remote add origin http://user:passwd@xxx
    git pull origin master
    git fetch
    git checkout -b 11.11 origin/11.11 #拉取远程分支到本地(本地没有此分支)
    
    #本地仓库拉取远程仓库(无本地仓库)
    git clone http:user:pwd@xxx 
    
    #拉取远程分支(本地没有此分支)
    git checkout -b 本地分支名 origin/远程分支名
    
    #推送本地分支到远程库(远程仓库没有此分支)
    git push --set-upstream origin 本地分支名

    #修改本地关联的远程仓库
    方法一:
    git remote rm origin
    git remote add origin git@github.com:xxx/xxx.git

    方法二:
    git remote origin set-url --push <name><newurl>

    方法三:
    直接修改.git/config文件

    #相关远程命令
    查看远程仓库
    git remote -v

    删除远程仓库
    git remote rm <name>

    #git fetch命令
    $ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master
    $ git log -p master origin/master //比较本地的仓库和远程的对比
    $ git merge master //合并拉取下来的分支和本地分支

    $ git fetch origin master:tmp //拉取远程分支到本地分支(新建)
    $ git diff tmp //比较本地分支和拉取下来的分支不同
    $ git merge tmp //合并分支
    $ git branch -d tmp //删除临时拉取下来的tmp分支

    # revert和reset区别

     git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit看似达到的效果是一样的,其实完全不同.

     第一:上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突(或git push -f强制推送).但是revert 并不会.

     第二:如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.

     第三:reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.





  • 相关阅读:
    在 《超过 光速 的 方法》 里 的 回复
    超过 光速 的 方法
    在 《我对 相对论 提出了一个 修正,名为 “K氏修正”》 里 的 回复
    我对 相对论 提出了一个 修正,名为 “K氏修正”
    input 只读不能修改
    获取父iframe的高宽
    indexOf ie下的兼容问题
    英文单词自动换行
    textarea 限制字数
    js判断输入框的范围,并且只能输入数字
  • 原文地址:https://www.cnblogs.com/shiyuheng/p/9962593.html
Copyright © 2011-2022 走看看