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

    git 使用

    全局配置

    首次安装git后进行一些配置,提交代码的时候就会将用户名和邮箱存入版本库中,其他开发人员就可以看到是谁提交的代码

    1. 设置全局用户名:git config --global user.name github上的用户名
    2. 设置全局的邮箱:git config --global user.email 邮箱
    3. 查看全局邮箱:git config --global user.email
    4. 查看所有配置信息:git config --list

    因为git是分布式版本控制系统,所以, 每个机器都必须自报家门:你的名字和Email地址。

    公钥配置

    详见博客

    从github或码云上下载项目

    1. 切换到存放git版本库的地方
    2. Git clone url(github上的地址)

    cd 项目名(进入项目文件夹内)master:主分支

    1. 注:如果不想从远程获取版本库,在本地计算上生成版本库:git init 详见-git remote

    git的三个区

    1. 工作区(当前编辑的代码区)
    2. 暂存区(作为过渡层、避免误操作、保护工作区和版本区、分支处理;add)
    3. 版本库(版本控制)

    git 命令

    • git status (查看工作区)
    • git add 文件名(将文件添加到暂存区)/ git add .(点或者星*) (将所有工作区的中内容加入暂存区)

    执行后可能出现的状况:1.不会有任何提示,但是提交成功了;2.失败会提示fatal:xxx;3.可能会出现警告,由于linux和window的换行符不一致导致,警告内容:warning:LF will be replaced by CRLF in a.txt. 解决方式:git config --global core.autocrlf false

    • git commit –m "注释内容"(提交暂存区所有文件存入版本区)/ git commit -a -m "注释" (直接从工作区存入暂存区再存入版本区,-a:存入暂存区,-m:存入版本区)

    如果只输入git commit 会出问题,这时需要ESC + : + q! 退出就好

    • git push(提交到远程仓库)

    git分支

    • git branch (查看分支)
    • git branch 分支名 (创建一个新分支)
      • git branch –d 分支名(删除分支)(如果出现无法删除子分支,将-d改为-D,强制删除)
      • - -merged (查看当前分支下所合并的分支)
      • --no-merged (查看没有合并的分支)
    • git checkout 分支名(切换分支)
      • git checkout –b 分支名 (创建并切换到新分支)禁止在空分支基础上去切换另一个分支,会删除上一个空分支
    • git merge 分支名(合并分支;git merge dev:合并dev分支到当前分支)
    • git diff branch1 branch2 (显示出两个分支之间所有有差异的文件的详细差异)
    • git diff branch1 branch2 --stat (显示出两个分支之间所有有差异的文件列表)
    • git diff branch1 branch2 xxx (显示指定文件的详细差异)

    在本地创建分支并提交到远程

    git checkout -b dev1 origin/dev
    git push origin dev1

    差异对比

    • git diff (暂存区-与工作区+的差异对比)
    • git diff --cached(--staged) (版本库-与暂存区+的差异对比)
    • git diff master (版本库-与工作区+的差异对比)

    日志+版本号

    • git log (查看日志) : 如果版本太多,一次显示不全,想要退出此状态,请按q
    • git reflog (操作记录,可以回到当前版本;查看历史记录的版本号id)

    撤销

    • git reset HEAD <file.name> (从暂存区撤销回工作区)/ git reset HEAD (用版本库中的文件去替换暂存区的全部文件)
    • git checkout -- <file.name> (从工作区撤销回上一次提交的版本区,用暂存区指定文件去替换工作区的指定文件)/ git checkout HEAD <file.name> (用版本库中的文件替换暂存区和工作区的文件)
    • git commit --amend (撤销上一次的提交命令,重新提交新的代码)

    删除

    • git rm <file.name> (如果工作区删除了一个文件,通过此命令可以把暂存区的文件删除)
    • git rm -f <file.name> (如果删除暂存区的文件,那么工作区和暂存区的文件都会删除)
    • git rm --cached <file.name> (只删除暂存区的文件,工作区的文件保留)
    • git rm -r xxx (删除文件夹)

    恢复/版本回退

    • git checkout (commit id) <指定文件> (还原删除的文件)
    • git reset --hard (commit id)(还原版本,回退到指定commit id版本)
      1. git reset --hard HEAD^ (返回上一个版本,回退一次提交)git reset --hard HEAD^^
      2. git reset --hard HEAD~ (返回上几个版本)

    版本冲突

    合并分支时,如果在同一个文件,在同一个地方,都修改了或新增内容会引起版本冲突。

    同步到远程仓库

    • git remote (查看远程仓库的名字) git remote add origin 远程仓库名字(地址)(关联一个远程库)
      1. git remote –v (查看远程地址)
      2. origin (远程仓库的名字)
    • git push origin master (git会把master分支推送到远程仓库对应的分支上)
    • git push -u(第一次要用-u,以后不用) origin master
    • git push -u origin master -f (强制push到远程仓库)

    若成功推送过一次代码后,电脑不能够自动记住github的账号和密码,执行以下命令解决:git config --global credential.helper store

    多人协作解决冲突

    • git fetch (从远程获取但不与当前代码合并)
    • git diff master origin/master (查看两个冲突文件的异同)
    • git merge origin/master (合并)
    • git pull(从远程获取并与当前代码合并)
    • git pull origin master(将远程库的更新拉取到本地并自动合并)

    拓展

    git bash跟cmd命令行不是一个东西,git是Linux的 cmd是window的

    Linux的命令

    mkdir xx:创建一个空目录 xx指目录名
    vi x.txt 新建文件(visual editor)
    输入i进入编辑模式
    ESC + : + wq 保存并退出
    ESC + : + q! 不保存并退出
    rm -r xx:删除文件夹
    pwd:显示当前目录的路径
    cat xx.txt:查看xx文件内容
    clear:清屏幕
    ls:列出当前文件夹中所有文件
    ll:列出当前文件夹中所有文件的详细信息
    cd xx:进入xx目录
    cd .. :返回上一级目录

  • 相关阅读:
    英语语法最终珍藏版笔记-16定语从句
    U3D-页游-检测机制-webplayer-调试方法
    Unity UGUI 的RectTransform参数的设置
    游戏贴图的基本知识
    游戏贴图与模型基本规范
    【游戏模型】游戏超写实贴图制作技巧
    灯光下角度不同会出现中间的片没有光照
    Unity3d中SendMessage 用法
    C# Hashtable赋值给另一个Hashtable时
    InvalidOperationException: out of sync
  • 原文地址:https://www.cnblogs.com/lisaShare/p/12778920.html
Copyright © 2011-2022 走看看