zoukankan      html  css  js  c++  java
  • git进阶

    查看远程分支
    如下即可,r是remote的简写
    git branch -r
    或者如下,a是all的简写,可以列出当前本地分支和远程分支---即所有分支
    git branch -a  
     
     
    删除远程分支
     
     
    删除本地分支
     
     
    创建本地仓库分支并推送到远程仓库(直接git push也行)
     
     
    注意
    新建本地分支后将本地分支推送到远程库, 使用git pull 或者 git push 的时候报错
    是因为本地分支和远程分支没有建立联系  
    git branch -vv  可以查看本地分支和远程分支的关联关系) .
    根据命令行提示只需要执行以下命令即可
    git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字
     
     
    创建新分支方式2
    会在本地创建该分支,并主动切到此分支上
    $ git checkout -b 1.0

    推送到远程

    git push

    如果出现如下错误

    fatal: The current branch 1.0 has no upstream branch.
    To push the current branch and set the remote as upstream, use
    git push --set-upstream origin 1.0


    git本地新建一个分支后,必须要做远程分支关联。如果没有关联, git 会提示你显示的添加关联。在本地分支下操作: git pull, git push都会提示你此信息。

    解决办法其实就是确定这关联:
    如上错误代码的提示:git push --set-upstream origin 1.0
    其中的origin是你在clone远程代码时,git为你创建的指向这个远程代码库的标签,它指向远程的repository。(查看远程repository信息,可以用命令git remote -v进行查看,看看当前的代码是远程的哪个repository。)
    1.0是你远程的branch

    名词讲解

    origin:表示远程仓库,是你在clone的时候git自动设置远程仓库别名,可以修改这个标识
    repository:代码库。可以存放在你的电脑里,同时你也可以把代码库托管到Github的服务器上。
    branch:分支
    upstream:如果A库中的分支x被push到B库中的分支y,则y就是x的upstream,而x就是y的downstream。
     set-upstream:本地某分支跟踪远程分支

     
    忽略某个文件或文件夹,不提交
    比如我有个,myzone_node,里边有个.idea的文件夹,该文件夹是用于构建IDE为webstom的项目的,毫无用处,那么我就不提交它
     
    touch .gitignore ///创建.gitignore文件,该文件内声明不需要提交的列表
     

    vim .gitignore


    //进入编辑.gitignore 然后再按下ctrl+i,i代表insert的意思,就可以编辑啦   
    退出编辑模式的命令是:
    先按esc退出编辑模式
    然后输入 :wq 冒号也要输入进去,然后回车退出编辑。
    这样你就生成了一个.gitignore文件,这个文件放在和.git这个隐藏文件夹同级的位置。
    下面是一些gitignore文件的写法分享:
    (1)所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
    (2)可以使用标准的 glob 模式匹配。
    (3)匹配模式最后跟反斜杠(/)说明要忽略的是目录。
    (4)要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
    所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
    # 此为注释 – 将被 Git 忽略
    *.a       # 忽略所有 .a 结尾的文件
    !lib.a    # 但 lib.a 除外
    /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/    # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    下面有些人会遇到加上这个文件,发现忽略的文件还是有上传
    原因:
    在git库中已存在了这个文件,之前push提交过该文件。
    .gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了
    解决:
    需要在git库中删除该文件,并更新。
    然后再次git status查看状态,文件不再显示状态。

    如果你的文件已经提交,而此时你才发现忘了添加.gitignore文件,不用担心,有办法,只要按照下面的步骤一一来做就可以

    按顺序依次执行如下命令:

    git rm -r --cache .
    git add .
    git commit -m ".gitignore now work"

    最后提交到远程仓库,会发现.gitignore文件起作用了。

    ---------------以下为整合版--------

    1. 创建分支

    方法一

    比如说我现在本地和远程就两个分支,master和test

    两步走:

    a- 创建本地分支:$ git branch hello

     

    b- 推送同步到远程库:$ git push origin hello

     

    来看看效果吧

    方法二

    直接在github或者gitosc上创建分支,不要问我,百度

    然后,再更新到本地,本地就有了

    注意的是,更新后,如果不切换哪个分支,你查看本地分支是看不到的

    2.然后,在本地仓库执行git命令

    查看本地分支:$ git branch

    (绿色的代表当前正在使用的分支)

    3.查看远程分支:$ git branch –a

     

    4.切换分支(本地远程是会一起切换的,所以不用考虑是本地还是远程)

    : $ git checkout master

    5.合并分支:$ git merge test

    比如我当前的正在使用的分支是master,这么做就会与test分支合并

    注意冲突

    6.仅删除本地分支:$ git branch -d hello

    注意,如果该分支没有与主分支合并的话,执行该删除会报错

    The branch 'test' is not fully merged

    你需要执行强制删除指令:$ git branch -D hello

    7.仅删除远程分支:$ git push origin :test

    原理是把一个空分支push到server上,相当于删除该分支。

    8.查看本地库下的文件:ls

     

    9.查看远程库下目录

  • 相关阅读:
    mysql索引最左匹配的理解(转载于知乎回答)
    mysql深度优化与理解(迄今为止读到最优秀的mysql博客)
    PHP数组函数总结与使用
    进程(process)和线程(thread)
    联合索引使用规则(转载)
    mysql优化大全(转自别人 )
    HTTP隧道解决的问题
    HTTP代理协议 HTTP/1.1的CONNECT方法
    vant弹窗提示
    vue获取验证码倒计时
  • 原文地址:https://www.cnblogs.com/dshvv/p/7902799.html
Copyright © 2011-2022 走看看