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

    git常用命令

    创建版本库

    创建版本库,新建一个文件夹,在这个文件夹中输入git init

    mkdir test && cd test
    git init
    

    配置账号和邮箱

    查看:git config user.name git config user.email

    配置:

     git config --global user.name "你的昵称"
     git config --global user.email "你的邮箱"
    

    修改

    1命令修改

    git config --global --replace-all user.name "your user name"
    git config --global --replace-all user.email"your user email"
    

    2配置文件修改

    vim ~/.gitconfig
    
    [user]
            name = wangda
            email = 1211@qq.com
    

    拉取远端到本地

    https:

    git clone 版本库地址	[本地文件夹名称]
    git clone https://gitee.com/songboy/test201907.git   httptest
    

    更新:

    git pull
    

    密码:

    git config --global credential.helper store
    
    .gitconfig文件中新增一项配置
    [credential]
        helper = store
    

    ssh拉取:

    创建ssh key

    ssh-keygen
    
    会在当前用户目录下生成公钥和私钥,查看生成的公钥的命令为cat ~/.ssh/id_rsa.pub
    
    添加公钥到服务器
    
    

    再拉取

    git clone git@gitee.com:songboy/test201907.git  sshtest
    

    更新 git pull

    提交代码

    要将代码推送到服务器通常会经历五个步骤:

    1更新(git pull 让本地仓库保持最新的版本记录)

    2检查(git status 检查一下有哪些文件被改动了)

    Untracked: 未跟踪,一般为新增文件,此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
    Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.
    deleted: 文件已删除,本地删除,服务器上还没有删除.
    renamed:文件名称被改变
    

    如果发现无意中编辑了某一个文件,但实际上并不想改变它,这里可以使用git checkout 文件名来撤销更改 例如:git checkout README.md

    3暂区 缓存

    git add index.php(指定文件)
    git add app(目录)
    git add .
    

    4提交到本地

    git commit . -m “这是备注信息”
    

    5正式提交,推送到远端

    git push
    

    Git 提交代码可以选择全部提交或者部分提交,全部提交可以用.替代,部分提交则输入目录名或文件名

    提交代码之后还需要使用git push命令把代码从本地推送到远程服务器

    分支管理

    1 把远程分支在本地创建,可以通过 git checkout 分支名 命令进行

    也可以切换分支(当它发现你本地不存在这个分支,会自动找到远程对应的分支然后在本地进行创建)

    git checkout master
    

    2 新建本地分支

    加入参数-b

    git checkout -b test
    

    如果使用 git push 是不能直接推送的,需要在第一次推送的时候指定远程分支名

    git push --set-upstream origin test
    

    3 合并分支

    有三个分支,分别是:master生产环境、develop开发环境、test bug 修复分支。现在我在 test 分支中修复了 BUG,需要发布到线上生产服务器上,那么我们就可以在master分支下通过合并分支的方式将test分支的代码合并到 master 分支中去

    git merge test
    

    图片描述

    查看合并记录

    git log
    

    4 删除分支 git branch -d 分支名

    合并

    场景:

    develop、test、master三个分支;develop为开发分支,日常在这个分支下开发功能,test分支为功能测试分支,面向测试同事,master分支为生产环境的代码,面向用户;

    在 develop 分支下共同开发,觉得没问题之后,会通过git merge将 develop 代码合并到 test 分支中,然后发布到测试服务器

    1 为了让测试人员能够测试到我们开发的功能,我们需要将develop分支的新版本同步到test分支中,这个同步的过程有多种方式,但最常见的就是使用git merge命令,也就是合并代码操作;

    在执行代码合并的时候,我们需要将分支切换到test分支上

    git checkout  test 
    

    再在test下使用git merge命令将develop分支合并到test分支中

    git merge develop
    

    命令执行完毕之后,如果两个分支以往的历史没有差异部分,则会将develop提交的版本直接复制过来

    2 代码冲突

    场景:

    test分支是给测试人员测试用的,而develop分支是给开发人员使用,因此代码所处的环境略有差异

    假如:config/config.php文件的配置在两个分支中不一样,那么合并时就产生冲突

    图片描述

    遇到这种代码冲突时候,需要我们人工去解决合并冲突,可以使用 vim 命令删除冲突中的多余代码,

    我们需要删除多余代码和冲突发,只保留我们需要在当前分支需要保留的内容即可

    vim config/config.php
    

    图片描述

    接着我们需要使用git add将冲突的文件重新添加到工作区中,并提交一个新的版本

    解决冲突后这里提交版本的方式稍微有一些区别,会在git commit 后面增加一个-a参数,而且不需要-m参数

    git add .  && git commit -a
    

    3 避免代码冲突

    这里需要用到一个 Git 仓库当中的特殊文件.gitattributes和之前的忽略文件类似,它们都是 Git 中的一个特殊文件;我们在里面增加文件并设置参数,当 Git 在触发动作的时候会检查这个规则列表

    git checkout develop
    
    echo '/config/config.php merge=ours' > .gitattributes
    
    cat .gitattributes
    
    git add . && git commit . -m '忽略合并测试'
    

    图片描述

    在 test 下 git merge develop 就会忽略冲突了

    常用
    git add .
    git commit
    git commit --amend
    git push origin HEAD:refs/for/master
    git reset [commit_id]
    git status
    git log
    git pull
    
  • 相关阅读:
    QT删除QWidget或QLayout下的控件
    OSG HUD实现类似ArcGIS制图中图例效果(色块+标注)
    QT简易画板练习
    展望
    打字比赛日前
    学习的第一天
    SpringBoot之CommandLineRunner启动执行任务
    java根据ip获取城市
    springboot项目中, 同一浏览器JSESSIONID互相覆盖问题
    eclipse的spring项目中,alt+/无提示或按多次才正确提示
  • 原文地址:https://www.cnblogs.com/fisherss/p/13665138.html
Copyright © 2011-2022 走看看