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

    git本地基本命令操作介绍及注意事项(以下出现的命令可用git bash 或开发工具带的命令操作界面):
    安装本地git客户端,全部默认配置即可
    通过git bash生成公私钥
    ssh-keygen -t rsa -C "your.email@example.com" -b 4096
    如无其他特殊要求,默认回车就好,无需设置密码及路径
    cat ~/.ssh/id_rsa.pub
    将得到的公钥复制到gitlab上个人的Settings中的SSH Keys即可
    选择本地一个路径作为git本地仓库及代码存放位置
    git config --global user.name "lc"
    git config --global user.email "lc@163.com"
    确定本机全局提交者


    git init
    初始化该路径环境,创建.git文件夹,该命令应在该路径下执行


    git remote add origin git@192.168.1.12:lc/test.git
    远程连接gitlab上的项目所在目录

    git clone -b 170907 git@192.168.1.12:dcsp/smau.git

    远程下载分支


    git push -u origin --all
    -u 等价于 --set-upstream,作用为在gitlab上建立与本地映射关系,将上传本地所有分支!将来在本分支提交时即可简略为git pull/push


    git log --pretty=oneline
    显示已执行的commit操作,--pretty=oneline即显示简略信息,HEAD指向的为当前正使用的版本;git log --graph 可以看到分支合并图


    git checkout -b branch1
    在本地建立分支branch1,checkout即为切换到,-b为新建分支


    git branch
    查看本地版本库,带*即为目前正使用的版本,-a查看所有分支包括远程分支,-vv这会将所有的本地分支列出来并且包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有(远程仓库仅指已缓存的,获取实时需要先执行git fetch -all)


    git add .
    将改动保存至本地缓存区,.可以替换为具体路径文件


    git diff
    可查看工作区和版本库中的的差异,若工作区的已add到缓存区,则不比较


    git commit -m "分支"
    将改动提交至本地版本库,-m即版本描述


    git diff --cached
    可查看本地缓存区和本地版本库的差异,git diff HEAD 可查看版本库与工作区及缓存区的差异


    git status
    可查看当前版本的状态,包含本地与服务器版本的差异及本地缓存区是否有内容


    git reset --hard <版本号>
    可切换本地不同的版本库(通过commit提交过的版本),历史版本号可通过git log或git reflog查看,--hard即切换的同时清空工作区和缓冲区内容;--soft即保留工作区未add内容,并且将切换前版本与切换后版本的差异放入缓冲区;--mixed即将切换前与切换后的差异放入工作区,待重新add和commit,即可用于将缓存区的变化回退到工作区


    git checkout -- <file>
    可撤销工作区修改,若已add则恢复至add


    git rm <file>
    从版本库中删除文件,若这文件确实不需要才使用;若误删工作区文件,可通过git checkout -- <file>还原为最后提交版本的文件


    git merge <name>
    合并某分支到当前分支,git branch 可查看当前分支;git merge --no-ff -m "合并指定分支到当前分支并保留指定分支记录" <branch>


    git branch -d <file>
    删除指定分支;-D <file> 强制删除分支,不管是否合并到主分支


    git remote -v
    查看远程仓库的情况,-v即显示详细信息,若没有推送权限,将看不到push的地址


    git push origin <file>
    上传本地当前分支到远程origin库


    git checkout -b dev origin/dev
    创建远程分支并本地切换到该分支,dev可换成分支名


    git branch --set-upstream dev origin/dev
    建立本地与远程分支之间的联系


    git fetch origin
    同步远程版本库


    常用命令集
    SET LESSCHARSET=utf-8
    解决windows系统中用git log命令中出现中文乱码问题
    git config --global alias.st status
    给命令配置别名,--global即当前用户生效,上述及git st = git status
    git-scm.com
    git官网,可查阅详细资料


    场景应用:
    场景1、主分支有BUG,但是手头的dev分支正在开发新功能,且功能尚未完成无法commit
    处理方式:
    1:在 dev 下正常开发中,说有1个bug要解决,首先我需要把dev分支封存stash
    2:在master下新建一个issue-101分支,解决bug,成功后
    3:在master下合并issue-101
    4:在 dev 下合并master, 这样才同步了里面的bug解决方案
    5:解开dev封印stash pop,系统自动合并 & 提示有冲突,因为封存前dev写了东西,此时去文件里手动改冲突
    6:继续开发dev,最后add,commit
    7:在master下合并最后完成的dev
    操作如下:
    1: $ git stash
    2: $ git checkout master
    $ git checkout -b issue-101
    //去文件里修bug
    $ git add README.md
    $ git commit -m "fix-issue-101"
    3: $ git checkout master
    $ git merge --no-ff -m "m-merge-issue-101" issue-101
    $ git branch -d issue-101
    4: $ git checkout dev
    $ git merge --no-ff -m "dev-merge-m" master
    5: $ git stash pop
    //提示冲突,去文件手动改正
    Auto-merging README.md
    CONFLICT (content): Merge conflict in README.md
    6: //继续开发 ... ... ,完成后一并提交
    $ git add README.md
    $ git commit -m "fixconflict & append something"
    7: $ git checkout master
    $ git merge --no-ff -m "m-merge-dev" dev
    $ git branch -d dev


    场景2、多人协同工作,在dev分支上进行开发,A修改了test.txt并push,B修改了test.txt准备push提示冲突
    处理方式:
    1、git push origin branch-name推送自己的修改;
    2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull origin branch-name试图合并;
    3、如果合并有冲突,则解决冲突,并在本地提交;
    4、没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    5、如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

    参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  • 相关阅读:
    json~
    ASP.NET经典60道面试题
    C#相关算法_1
    js各种事件
    WebService开发(一) 如何使用Soap头
    使用ASP.NET AJAX异步调用Web Service和页面中的类方法(1):调用Web Service、调用页面中的类方法
    javascriptの一些问题
    ASP.net的身份验证方式有哪些?分别是什么原理?
    如何下载jmeter旧版本
    转账和二维码转账功能测试点
  • 原文地址:https://www.cnblogs.com/wish5714/p/7498109.html
Copyright © 2011-2022 走看看