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

  • 相关阅读:
    动态传参
    函数的介绍
    文件的操作
    send email with formatted table
    minimize and close window with customed winform
    python algorithm
    something important about docker
    book list
    which language is suitable for what to do
    Find Duplicate Items in list fast
  • 原文地址:https://www.cnblogs.com/wish5714/p/7498109.html
Copyright © 2011-2022 走看看