zoukankan      html  css  js  c++  java
  • git逻辑和基本命令

    提交和推送的区别

    提交(commit):把您做的修改,保存到本地仓库中
    推送(push):把您本地仓库的代码推送至服务器(一般是远程服务器及gitlab或github)

    拉取和获取的区别

    git  pull     从远程拉取最新版本 到本地  自动合并 merge   
            不带分支地址默认拉取所在分支的代码,正常:git pull origin master
    git  fetch   从远程获取最新版本 到本地   不会自动合并 merge 正常操作如下: 
            git fetch  origin master      
            git log  -p master ../origin/master    
            git merge orgin/master

    分支和合并

    git branch  XXX   创建分支(代码会从master复制过来)   
    git checkout XXX 切换分支(代码也会切换成XXX的代码。
               如果xxx分支代码有后续提交过和mster不一样,这时就全不一样了,
               不会合并哦,别搞错,跟master代码没关系)
    git merge XXX 合并XXX分支(假如你现在master,这时master就合并了XXX分支
    的代码,XXX分支代码还是原来的代码)

    合并代码有两种方案:

    1.主分支合并xxx分支
     git fetch origin xxx
    git log -p master..origin/xxx
    git merge origin/xxx
    首先你必须在master分支上,如果你在ccc分支上,那就是ccc分支合并xxx分支的代码【gitlab上合并到主分支可以申请】,merge是合并了代码和提交路径等等
    2.拉取的方法
    git pull xxx 拉取xxx的代码过来,并合并
    区别:git pull = git fetch + git merge

    
    

    拉取线上代码,覆盖本地已改的代码或恢复误删文件,及恢复线上版本

    git fetch  或者 git fetch --all
    git reset --hard XXX 例如:git reset --hard branch_y (然后git pull 可以更新线上代码,避免冲突)

    版本回退

    1.假设有2个提交记录

    commit def5adef853da4cc05752bdb36577c127be71ba5

    Author: 132982jianan <1072772483@qq.com>
    Date:   Thu Dec 28 16:01:36 2017 +0800

        add data to 1.txt

    commit f36801544670e00b2f59a28e19017d2786c4085e
    Author: 132982jianan <1072772483@qq.com>
    Date:   Thu Dec 28 15:59:46 2017 +0800

        init 1.txt
    (END)

    2.现在回到最开始的那一个提交
    git reset --hard f36801544670e00b2f59a28e19017d2786c4085e

    3.查看日志,就会发现只剩下一个提交了
    git log

    commit f36801544670e00b2f59a28e19017d2786c4085e
    Author: 132982jianan <1072772483@qq.com>
    Date:   Thu Dec 28 15:59:46 2017 +0800

        init 1.txt
    (END)


    4.这个时候,发现回退版本错了,那么就用git reflog查看提交记录
    git reflog

    f368015 HEAD@{0}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085e
    def5ade HEAD@{1}: reset: moving to def5ade
    f368015 HEAD@{2}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085e
    def5ade HEAD@{3}: commit: add data to 1.txt
    f368015 HEAD@{4}: commit (initial): init 1.txt


    5.找出想要回退的版本,进行回退

    恢复
    git reset --hard def5ade

    在工作目录中初始化新仓库

    要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:

    $ git init

    从现有仓库克隆

    克隆仓库的命令格式为 git clone [url]
    $ git clone git://github.com/schacon/grit.git

    git 从远程仓库获取所有分支

    git branch -r | grep -v '->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
    git fetch --all
    git pull --all

    git添加忽略或删除

     window 右键git里添加忽略

      

    linux :

      vi   .gitignore 

        写入你要忽略的文件或文件夹 

    git保留账号密码

    在项目目录里(及git clone下来的项目的里面)

      vi .git/config

    然后添加

      [credential]
        helper = store

     接着

      git pull 

    输入用户名、密码自动保存

  • 相关阅读:
    必须转载 PHP & memcached 太精彩了,看一遍就能入门
    SYSID 来指定当前system
    How to increase the JES2 spool size
    JOBPARM SYSAFF的用处
    使用多Volume来创建一个dataset
    如何解决db2nodes.cfg line number “1”, Reason code “10”
    epdf macro to remove comments
    如何停止重复的job
    mysql数值类型
    (九)solr实现autocomplete功能
  • 原文地址:https://www.cnblogs.com/hfdp/p/10149849.html
Copyright © 2011-2022 走看看