zoukankan      html  css  js  c++  java
  • git命令大集合

    git 忽略配置

    复制代码
    全局忽略DS_Store:
    
    1.vi ~/.gitignore_global 
    在gitignore_global中写入: 
    .DS_Store 
    */.DS_Store 
    2.vi ~/.gitconfig 
    配置.gitconfig 文件如下: 
    [user] 
    name = xiaoronglv 
    email = xxxxx@gmail.com 
    [push] 
    default = matching 
    [core] 
    excludesfile = /Users/holy/.gitignore_global 
    其中:/Users/holy 可以在命令行输入pwd即可查看。
    复制代码

    详见:http://blog.csdn.net/que_li/article/details/52918545

    git 使用整理

    密钥生成

    复制代码
    cd ~/.ssh       //检查本机中是否有公钥信息
    mkdir key_backup
    cp id_rsa*key_backup        
    rm id_rsa       //删除已有公钥
    "新生成公钥"
    ssh-keygen -t rsa -C "git注册账号邮箱"        //回车后会让输入用户名,再回车输入密码,在是确认密码
    cat ~/.ssh/id_rsa.pub  //显示刚生成的公钥
    
    /*将公钥添加到本地*/
    <windows>
    clip < ~/.ssh/id_rsa.pub
    <Mac>
    pbcopy < ~/.ssh/id_rsa.pub
    <Linux>
    xclip -sel clip < ~/.ssh/id_rsa.pub
    然后在 .ssh文件中的 id_rsa就为公钥
    把公钥添加到coding中
    然后运行 ssh -T git@git.coding.net 看是否已经联通
    复制代码

    上传文件到项目

    复制代码
    电脑中创建一个空文件,不要以中文命名。
    打开电脑cmd命令框
    cd 文件目录 //配置文件根目录
    git init            //初始化
    git remote add origin 远程项目地址        //链接远程服务器
    git add .       //上传目录下所有文件
    git commit -m "第一次上传"       //提交,并注释
    git pull origin 分支      //链接远程主机分支到本地
    git push origin master      //上传本地所有文件到master分支
    git push -u origin 分支       // 当远程存在多个分支时,使用-u
    复制代码

    本地分支

    复制代码
    git branch      //查看本地所有分支
    git branch xxxx //创建xxxx分支
    git checkout xxxx   //切换到分支xxxx
    git branch -d xxxx  //删除本地xxxx的分支,注意需要在非删除分支下
    
    切换分支时提示you need to resolve your current index first
    git reset --merge
    复制代码

    克隆代码到本地

    git clone 远程地址  // 下载远程代码到本地
    git clone 远程地址 -b xxxx  // 克隆远程某分支上的代码,xxxx为分支名

    删除文件

    clone远程文件后,删除需要删除的文件,然后
    git add --all

    删除远程仓库文件及文件夹

    1、git配置远程地址

    git remote add origin url ,其中url为远程仓库地址。

    2、git删除远程地址

    git remote rm origin

    3、查看远程仓库地址信息

    git remote -v

    4、git rm -r --cached ignore_file //删除缓存

    git rm -r --cached a/2.txt //删除a目录下的2.txt文件   
    git rm -r --cached a // 删除a目录
    git commit -m "删除a目录下的2.txt文件" 
    git push

    查询跟踪

    git status
    反馈:
        nothing to commit,working directory clean       //  没有提交,项目很干净
        changes not staged for commit       // 有红字提示,项目被修改,但是未被暂存
        changes to be committde     // 绿字提示,项目已经被暂存

    远程库操作

    git remote      // 列出远程分支
    git remote -v       // 列队远程分支对应的url
    git remote add xxx url      // 创建远程地址为url的xxx分支
    git remote remove xxx   //删除远程分支xxx
    git remote set-url xxx url      // 将xxx的远程地址变更为url

    config,设置多个密钥到本地

    //第一个密钥使用默认形式,第二个密钥配置如下
    Host gitlab地址 andy  // andy为需要的名称
    HostName gitlab地址
    User git
    Port 22
    IdentityFile ~/.ssh/gitlab_id_rsa   // 密钥地址

    rebase

    https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
    https://www.atlassian.com/git/tutorials/merging-vs-rebasing

    多分支操作合并到master

    复制代码
    // 自己的工作分支
    git checkout xxx
    
    // 提交工作分支修改
    git commit -a
    
    // 回到主分支
    git checkout master
    
    // 获取远程最新的修改,不会产生冲突
    git pull
    
    // 回到工作分支
    git checkout xxx
    
    // 合并主干修改,如果有冲突在此时解决
    git rebase master
    
    // 回到主分支
    git checkout master
    
    // 合并工作分支的修改,此时不会产生冲突
    git merge xxx
    
    // 提交到远程主干
    git push
    复制代码

    删除远程分支

    git push --delete origin xxx        //删除远程上xxx的分支

    清空缓存栈

    git stash clear

    node_modules过长无法删除

    rm -rf node_modules/

    push tag发布

    git tag publish/版本号
    git push origin publish/版本号

    切换分支

    $ ~/ccbin/mkview.sh  切换分支

    项目相关命令

    复制代码
    ##ssh三方访问工具SecureCRT 一般口令
    ssh admin@服务器地址
    * 服务器名称:admin
    * 密码:
    * cd ccbin  切换到ccbin文件
    * ./ccupdate.sh 更新服务器 
    * ./ccupdate.sh && ./build.sh && ./deploy.sh
    * 错误日志  
    * cd logs/appstore 切换到对应项目日志
    * ls 查看日志列表
    * tail -f common-error.log 
    * 修改antx
        * vim antx.properties
        * i修改 :w 保持 :q 退出
        * ls 查看目录下的内容
        * tail -200f common-error.log 查看错误日志
    复制代码

    删除文件夹

    * cd /usr/local/bin 切换路径
    * sudo rm -rf /usr/local/bin/tnpm 删除tnpm文件夹


    创建并切换到本地分支 

    * git checkout -b 【本地分支名】 origin/【远程分支名】

    删除.git 重新初始化git(delete the old .git history and initialize new history)

    $ rm -rf .git
    $ git init

    检出命令

    * git clone -b 【本地分支名】【远程分支名】

    合并分支:

    * git branch 查看本地分支
    * git branch -a 查看分支详情(本地分支及远程分支)
    * git checkout 目的分支(如master)
    * git merge 待合并分支(如branch1)【即将branch1分支合并到master】
    * git push origin master 将合并后的代码推送到远程分支


    回滚版本

    * git log 查看提交版本
    * git revert 版本号 将本地库回滚到该版本号之前的版本(即取消该版本及之后的提交)
    * 解决冲突
    * git add . && git commit -m “” && git push 重新提交版本之前的代码

    删除分支

    * git branch -D br 删除本地分支
    * git push origin :br  (origin 后面有空格) 删除远程分支

    【远程代码库回滚】:

    复制代码
    这个是重点要说的内容,过程比本地回滚要复杂
    应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布
    原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
    操作步骤:
    1、git checkout the_branch
    2、git pull
    3、git branch the_branch_backup //备份一下这个分支当前的情况
    4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
    5、git push origin :the_branch //删除远程 the_branch
    6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
    7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
    复制代码

     http://www.jianshu.com/p/8f0433090e2b?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io  Git详解以及使用遇到问题解决

     

    Git stash 命令

    git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
    git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
    git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

    一、For Windows

    • 下载地址:http://msysgit.github.io/
    • 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
    • git 配置(其实是为常用命令创造别名)
      $ git config --global user.name "Your Name" 

    •   $ git config --global user.email "email@example.com"



    —global 这个参数是说明,当前设备上的所有Git都会使用这个配置。

    • 创建版本库
      $ mkdir abc //创建目录 abc

    •   $ cd abc //进入 abc 目录

    •   $ pwd //显示当前目录

    •   执行结果:/Users/userName/abc



    • 将abc目录变为某项目的版本库目录
      $ git init //初始化,会生成一个 git文件夹,注意别动改文件夹下内容。用于跟踪管理版本

    •   执行结果:Initialized empty Git repository in /Users/userName/abc .git/



    • 新增文件
      $ git add README.MD  //当前目录下,创建README.MD

    •   $ git commit -"123123" //添加备注,并添提交至git仓库

    •   对于 git config -"" 的省略,可以为 git c



    commit是批量型提交,但add确是需要多次添加一个文件

    • 查看状态

    $ git status

    • 关联远程库
      $ git remote add origin 远程库地址 //远程库地址是托管平台创建代码库时所生成的xxxx.git



    主要用于对代码托管平台进行维护,github、coding

    • 更新远程代码到本地
    • git clone xxx.git库地址

    •   git pull origin master



    • 将git仓库的项目文件,提交至远程库
      git push -u origin master  //将该目录下的文件推送到远端(origin)上的 "master" 分支,第一次提交必须这么写

    •   git push origin master //推送最新修改,第一次之后每次更新可以使用该命令



    • 版本回滚
      git log //输出提交的历史记录

    •   git checkout 9位字符编码

    •   或者

    •   git checkout -b my_previous_version 9位字符编码



    • 删除分支
      git branch -d new_feature//把分支合并到主干分支,从主干(master)分支上发送



      • 假如修已经合并了,那么只会删除分支。假如分支未合并,会得到错误信息。所以需要强制删除
        git branch -D new_feature



     

    • 总的来说
      $ git init

    •   $ git remote add origin xxxx.git

    •   $ git pull

    •   $ git add .

    •   $ git commit -"123123" 

    •   $ git push



    在 git 中忽略文件 gitignore 与 exclude

    常见问题

    • error: failed to push some refs to …
      1. 这是由于远程仓库中代码版本与本地不一致冲突导致的,需要先git pull更新
      2. 如果出现报错 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
      3. 则需要重新输入$ git remote add xxxx.git
    • fatal: remote origin already exists. 
      1. $ git remote rm origin
      2. $ git remote add origin xxxx.git
      3. 如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
      4. 找到你的github的安装路径,我的是C:UsersASUSAppDataLocalGitHubPortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8etc.找到一个名为gitconfig的文件,打开它把里面的[remote “origin”]那一行删掉就好了!
    • there is no tracking information
      1. 该问题发生在新创建远程库,进行git pull更新时
      2. git branch —set-upstream master origin/master //这样才可以直接输入git pull 、git push
      3. 否则每次输入 git push origin master || git pull origin master
      4. 最后按以下方式提交
        git add .  

      5.  git commit -"first time add project"  

      6.  git push



    命令一览表

    原文:https://www.cnblogs.com/weilantiankong/p/6144443.html

  • 相关阅读:
    Mapreduce的Job运行流程
    Mapreduce的job提交流程
    Hadoop之hdfs
    Java之垃圾回收机制
    Java中线程死锁问题
    删除数据表重复元素方法
    JAVA
    php篇一 之上传文件
    php篇二 之微信公众号开发
    android + php 后台开发
  • 原文地址:https://www.cnblogs.com/alagong/p/9894534.html
Copyright © 2011-2022 走看看