zoukankan      html  css  js  c++  java
  • Git 常用操作

    1. Common Opt

    $ git config --global -l    //查看本地配置
    $ git config --global user.name jack张三            //设置用户名
    $ git config --global user.email jack@test.com        //设置邮箱
    $ git checkout -b test_branch    //新建分支并切换到新分支
    $ git branch -la
    $ git status
    $ git pull        //把最新版本拉取到本地
    $ git add xxxx
    $ git commit        /        git commit -a     //直接从working区到Local Resp
    $ git commit --amend    // 修改最近一次提交的提交信息
    $ git push
    $ git reset --hard
    $ git reset 91d14df62cd6b2f89376f3c5fb9d855c46ab636a
    $ git log
    $ git log --pretty=oneline    //查看当前分支的提交历史 里面包含 commit id
    $ git diff
    $ git chechout file 相当于SVN的revert,使用仓库版本替换此文件
    $ git checkout -- <file$    放弃本地文件修改(Working Directory)
    $ git reset Head [path]        undo git add            (git rm --cached FILE)
    $ git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
    $ git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
    $ git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    $ git stash clear: 清空Git栈
    $ git stash apply stash@{1}:就可以将你指定版本号为stash@{1}的工作取出来
    $ git branch -m <old_branch_name$ <new_branch_name$        本地分支重命名
    $ git restore --staged <file$ 将文件从暂存区撤出,但不会撤销文件的更改
    $ git resore 将不在暂存区的文件撤销更改
    
    /*
    git checkout master        
    git pull origin master   #切换回默认分支,并将默认分支和中央最新版本合并  
    git merge sdc             #在本地合并你的这次修改到默认分支  
    git push origin master   #提交到中央版本库,接下来还是要切换回工作分支的  
    git checkout sdc --force
    git push [远程名] [本地分支]:[远程分支]     
    --    mvn versions:set -DnewVersion=1.9.8
    */

    2. 删除分支

    (a) 删除远程分支
        $ git push origin :<BranchName>
        $ git push origin --delete <BranchName>
    
    (b) 删除本地分支, 强制删除用-D
        $ git branch -d <BranchName>
        
    (c) 本地分支重命名
        $ git branch -m <old_branch_name> <new_branch_name>
    
    (d) 强制分支指向某个commitid
        $ git branch -f main HEAD~3        //main分支指向HEAD的上3个父节点位置
        $ git branch -f main C4            //main分支指向C4位置

    3. 版本回退

    (a) git本地版本回退
        git reset --hard commit_id    // 退到/进到 指定commit的sha码, 可用 git log –oneline 查看
        git reset --hard HEAD^        // 回退到上个版本
        git reset --hard HEAD~2        // 回退到前2次提交之前,以此类推,回退到n次提交之前
    
    (b) git远程版本回退
        git push origin HEAD --force    // 远程提交回退

    4. tag标签使用

    [1] 创建tag
        $ git tag <tagName>             //创建本地tag
        $ git tag -a <tagName> <commitId>    //以某一个特定的提交为tag
        $ git push origin <tagName>     //推送到远程仓库
        $ git push origin --tags        //若存在很多未推送的本地标签,你想一次全部推送的话
    
    [2] 查看标签
        $ git show <tagName>    //查看本地某个 tag 的详细信息
        $ git tag 或者 git tag -l        //查看本地所有tag
        $ git ls-remote --tags origin    //查看远程所有tag
    
    [3] 删除标签
        $ git tag -d <tagName>        //本地tag的删除
        $ git push origin :<tagName>    //远程tag的删除
    
    [4] 检出标签
        $ git checkout -b <branchName> <tagName>    //类似根据commit id 检出分支

    5. git rebase 常规操作流程

    假设Git目前只有一个分支master。开发人员的工作流程是:

    •     git clone master branch
    •     在自己本地checkout -b local创建一个本地开发分支
    •     在本地的开发分支上开发和测试
    •     阶段性开发完成后(包含功能代码和单元测试),可以准备提交代码
    •         首先切换到master分支,git pull拉取最新的分支状态
    •         然后切回local分支
    •         通过git rebase -i 将本地的多次提交合并为一个,以简化提交历史。本地有多个提交时,如果不进行这一步,在git rebase master时会多次解决冲突(最坏情况下,每一个提交都会相应解决一个冲突)
    •         git rebase master 将master最新的分支同步到本地,这个过程可能需要手动解决冲突(如果进行了上一步的话,只用解决一次冲突)
    •         然后切换到master分支,git merge将本地的local分支内容合并到master分支
    •         git push将master分支的提交上传

        本地开发分支可以灵活管理

    git checkout master
    git pull
    git checkout local
    git rebase -i HEAD~2    //合并提交最近2个commit
    git rebase master    --> 解决冲突 --> git rebase --continue
    git checkout master
    git merge local
    git push

    6. 其他

    • 分支练习:https://learngitbranching.js.org

    转自:

    https://blog.csdn.net/nrsc272420199/article/details/85555911

  • 相关阅读:
    linux 共享内存 信号量 同步
    进程间通信 共享内存
    linux 多进程绑定问题
    C 语言调用python 脚本函数
    C 语言 和 python 调用 .so 文件
    好好学习
    three.js
    AMD、CMD、UMD 模块的写法
    webpack查缺补漏
    什么是 Web 服务器(server)
  • 原文地址:https://www.cnblogs.com/ylz8401/p/15666137.html
Copyright © 2011-2022 走看看