Git-1

作者: 巴巴11 | 来源:发表于2020-04-01 12:01 被阅读0次

    初始化git仓库(生成.git目录)
    git init

    将文件提交到暂存区(git status 状态为绿的)
    git add <filename>
    git add .

    将文件从暂存区移除(在commit之前,将文件从绿色变为红色)
    git reset <filename>

    查看文件状态
    git status

    将暂存区的文件进行提交
    git commit -m <message>

    查看commit记录
    git log

    文件的四种状态


    image.png

    说明:

    新建一个文件:untracked
    git add filename : staged (git status显示状态为绿的)
    git commit : 状态为 unmodified
    再次编辑: modified
    
    git对比仓库中文件和现有文件,如果没有差异,就是unmodified,否则就是modified。
    

    常用git命令:

    git add 
    git reset
    git commit
    git push
    git status
    git branch
    git rebase
    git merge
    git cherry-pick
    git stash
    git pull
    git fetch
    git log
    git reflog
    git remote
    git clone
    
    

    设置命令别名:
    alias
    修改.git目录的config文件配置

    [core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
    [remote "origin"]
        url = git@github.com:xywanhh/myPlugins.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
        remote = origin
        merge = refs/heads/master
    // 新增alias
    [alias]
            ad = add .
            cmm = commit -m
            lg = log
            rlg = reflog
            co = checkout
            cob = checkout -b
            cod = checkout develop
            com = checkout master
            fc = fetch
            cm = commit
            st = status
            pl = pull
            ps = push
    

    版本回退
    git reset <commitID>
    commitID使用全称和前七位都是一样的,都能唯一代表一个commit版本

    不带参数,默认是mixed

    想回到最新的commit点,可以直接git pull

    git reset 34d42ef --hard
    git reset 34d42ef --soft
    git reset 34d42ef --mixed

    --hard : 不保存所有的变更
    --soft : 保留变更且变更内容出于staged
    --mixed : 保留变更且变更内容出于modifed

    分支 branch
    git checkout -b <new branch name> <template>
    template参数表示新的分支以哪个分支或者commitId作为模板创建。如果为空,则以当前所在分支为模板。

    如果template的分支不是本地的,而是用远程仓来做,则需要加上origin
    git checkout -b newBranchname origin dev

    切换回已有的分支上去
    git checkout master

    查看所有分支
    git branch
    master

    • dev (高亮)
      高亮表示当前所处的分支

    分支合并
    git merge <branchName>

    场景:
    主线分支master
    创建分支1.0.0
    git checkout -b 1.0.0
    在1.0.0分支上,新拉两个分支
    git checkout -b dev1
    git checkout -b dev2
    回到主线,合并分支
    git checkout 1.0.0
    git merge dev1
    git merge dev2
    解决冲突(手动决定保留那些代码),并commit
    git commit

    远程仓库remote
    本地新建分支,并push到远程仓库
    git clone remoteUrl
    git checkout -b dev
    git push (报错)
    git push --set-upstream origin dev (此时远程端有了dev分支)

    拉取远程仓库信息
    git fetch

    git branch只能看到本地仓库的分支,看不到远程仓的分支信息
    git checkout dev (新建的dev分支设置了上流分支dev)

    拉取pull
    git pull (效果等同于git fetch + git merge)

    变基 rebase
    master 有3个commit点 125
    dev有4个commit点1234
    然后变更dev为12534:
    git rebase master
    解决冲突
    继续下一个rebase
    git rebase --continue

    相关文章

      网友评论

          本文标题:Git-1

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