美文网首页
Git入门-远程仓库操作指令

Git入门-远程仓库操作指令

作者: 技术永无止境 | 来源:发表于2019-03-18 00:56 被阅读0次
    • SSH设置指令
    $ ssh-keygen -t rsa -C "zhouzhaoming@yeah.net"
    

    如果你用的GitHub或者码云中添加公钥。在本机用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,将公钥添加进去即可。

    #我的用户主目录
    C:\Users\Administrator\.ssh
    
    • 将本地库推送到自己的GitHub或者码云
    git remote add gitee git@gitee.com:zhouzhaoming/learngit.git
    
    • 将本地代码更新推送到Git
    #第一次推送 -u还会关联本地和远程master
    git push -u gitee  master
    #以后无需-u
    git push gitee  master
    #查看远程库信息
    git remote -v
    #删除远程库
    git remote rm gitee
    
    • 从远程库克隆
      登录GitHub或者码云手动创建一个仓库gitskills。执行如下指令。
    git clone git@gitee.com:zhouzhaoming/gitskills.git
    

    Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

    • 分支
    #查看当前分支
    git branch
    #查看所有分支
    git branch -a
    #查看远程分支
    git branch -r
    #创建分支
    git branch dev
    #切换分支
    git checkout dev
    #创建+切换分支
    git checkout -b dev
    #合并某分支到当前分支
    git merge dev
    #表示禁用Fast forward
    git merge --no-ff -m "merge with no-ff" dev
    #删除分支
    git branch -d dev
    #删除远程分支,删除后还需推送到服务器,删除后推送至服务器
    git branch -d -r <branchname> 
    git push origin:<branchname>  
    #强制删除未合并的分支
    git branch -D dev
    #重命名本地分支
    git branch -m <oldbranch> <newbranch> 
    #git中一些选项解释
    -d
    --delete:删除
    -D
    --delete --force的快捷键
    -f
    --force:强制
    -m
    --move:移动或重命名
    -M
    --move --force的快捷键
    -r
    --remote:远程
    -a
    --all:所有
    
    • rebase 把本地未push的分叉提交历史“整理”成一条直线,看上去更直观,但本地的分叉提交已经被修改过了。
    git rebase
    
    • 查看分支
    #用git log --graph命令可以看到分支合并图。
    git log --graph --pretty=oneline --abbrev-commit
    
    • bug分支
    #隐藏当前工作
    git status
    #显示隐藏列表
    git stash list
    #回复现场
    git stash apply
    #删除隐藏记录
    git stash drop
    #恢复并删除
    git stash pop
    
    • fetch
    #这个命令将某个远程主机的更新全部取回本地
    git fetch <远程主机名> 
    #注意之间有空格
    git fetch <远程主机名> <分支名> 
    git fetch origin master
    #查看刚取回的信息
    git log -p FETCH_HEAD
    
    • pull
    #git pull等于如下指令:
    git fetch origin master //从远程主机的master分支拉取最新内容 
    git merge FETCH_HEAD    //将拉取下来的最新内容合并到当前所在的分支中
    #将远程主机的某个分支的更新取回,并与本地指定的分支合并
    #如果远程分支是与当前分支合并,则冒号后面的部分可以省略
    git pull <远程主机名> <远程分支名>:<本地分支名>
    
    • 多人工作流程
      • 首先,可以试图用git push gitee<branch-name>推送自己的修改;
      • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
      • 如果合并有冲突,则解决冲突,并在本地提交;
      • 没有冲突或者解决掉冲突后,再用git push gitee<branch-name>推送就能成功!
      • 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> gitee/<branch-name>。
    git push gitee dev
    git pull
    git push gitee  dev
    git checkout -b dev gitee/dev
    git branch --set-upstream dev gitee/dev
    
    • tag
    #新建一个标签,默认为HEAD,也可以指定一个commit id;
    git tag v0.1
    #查看所有标签
    git tag
    #查看具体标签详情
    git show v0.1
    #打标签到指定版本
    git tag v0.01 f52c633
    #用-a指定标签名,-m指定说明文字
    git tag -a v0.02 -m "基础服务v0.02 版";
    git tag -a v0.03 -m "基础服务v0.03 版" 1094adb
    #删除本地标签
    git tag -d v0.1
    #推送到远程
    git push gitee v1.0
    # 一次推送到远程
    git push gitee --tags
    #删除远程标签 先删本地再删远程
    git push gitee :refs/tags/v1.0
    #代码切换到标签
    git checkout tag_name 
    #修改标签代码,先新建分支,再在分支上做修改
    git checkout -b branch_name tag_name
    
    • 强制从远程最新仓库覆盖本地仓库
    # 将远程更新取回本地
     git fetch --all
    #撤销本地、暂存区、版本库(用远程服务器的origin/master替换本地、暂存区、版本库)
    git reset --hard origin/master
    #从远程同步代码
     git pull origin master
    #如上代码可以单条执行:
    git fetch --all && git reset --hard origin/master && git pull
    

    相关文章

      网友评论

          本文标题:Git入门-远程仓库操作指令

          本文链接:https://www.haomeiwen.com/subject/qznkmqtx.html