zoukankan      html  css  js  c++  java
  • git学习

    首先下载git 打开git Bash

    由于是分布式控制系统,每台机器必须自报家门

    输入:

    $git config --global user.name "guojiale"

    $git config --global user.email "gil102@sina.cn"

    --global这个参数表示这台机器上所有的git仓库都会使用这个配置,当然也可以对特定仓库使用特定的用户名和email

    $mkdir learngit

    $cd learngit

    $pwd //pwd用于显示当前目录

    创建git仓库

    $git init //把learngit这个目录变成仓库

    该目录下会出现 .git目录,若看不见,则用ls -ah

    用notepad++在该目录下创建并编写文件readme.txt

    $git add readme.txt //将文件添加到仓库

    $git commit -m "批注信息" //将文件提交到仓库

     //////////////////////////////////////////////////////////

    修改文件后

    $git status //查看状态

    提示:changes not staged for commit

    意思是单纯只是修改了,但没有提交到仓库,成为临时状态

    $git diff readme.txt //查看不同

    $git add readme.txt //将修改提交修改

    $git status //查看仓库状态

    提示:changes to be commited

    readme.txt进入临时状态,改变等被commited

    $git commit -m "add three lines"

    //////////////////////////////////////////////////

    $git log //显示所有版本

    $git log --pretty=oneline //让历史版本显示更简单

    $git reset --hard HEAD^  //回到上一个版本

    $git reset --hard HEAD~100 //回到前100个版本

    当你回到过去后,关闭git窗口,又想回到未来

    $git reflog //查看你过去的命令,找到相应版本号,commit在上面的是时间偏后的版本

     该命令通常只会有针对版本库的命令(commit,reset)

    ////////////////////////////////////////////////////////

    在一个目录(learngit) $git init后,该目录下会产生 .git 文件目录,该目录即为版本库

    工作区:learngit目录就是一个工作区

    假设增加了一个Lisense并修改了readme.txt

    $git status

    会提示:readme.txt modified

        Lisense.txt untracked

    同时$git add 两个文件,把他们提交到暂存区

    一次性commit到master分支

    每次修改,必须被add到暂存区,然后commit,

    否则修改了->add->再修改->commit(只会把暂存区的给commit了),第二次修改就没实现

    补救:$git add->commit

    ///////////////////////////////////////管理修改

    $cat readme.txt 可用股查看工作区的文件内容

    $git checkout -- readme.txt //可撤销工作区的修改

    如果add到了暂存区,再次对工作区做修改,会变回之前被放在暂存区之后的样子

    ////////////////////////////////////////////////////////// $git reset HEAD readme.txt

    若把修改提交到了暂存区用 $git reset HEAD readme.txt 撤销暂存区的修改,退回到工作区

    接着 $git checkout -- readme.txt 撤销工作区的修改,回到上一次commit的状态

    /////////////////////////////////////////////////////////////////////////////////////////$rm readme.txt

    $rm readme.txt //删除工作区的文件

    $git status //有修改没被提交到暂存区

    此时如果确实想删:

    $git rm readme.txt

    将版本库里面的该文件也给删了

    如果是误删:

    $git checkout -- readme.txt //撤销工作区的文件删除操作,因为版本库里还有,仿佛版本库里面就是参照

    /////////////////////////////////////////////////////////////////////////////////////////////////////////添加远程库

    $cd learngit ///进入本地git仓库

    $git remote add origin https://github.com/gabygoole/learn.git //让本地仓库关联github上的learngit仓库
    $git push -u origin master //由于是第一次推送,github上仓库为空,加-u

    总结:要关联一个远程仓库用
    $git remote add origin http...
    关联后使用:
    $git push -u origin master
    本地commit后:
    $git push origin master

    我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
    $cd是返回上级目录
    $ls //列出该目录下所有文件
    //////////////////////////////////
    要克隆一个远程仓库,先知道其地址 有ssh格式(原生协议,最快)的,有http格式的,http要慢很多
    $git clone http...
    ////////////////////////////////////////////////////创建/删除分支
    $git checkout -b dev //创建dev分支
    接着修改文件
    $git add README.md
    $git commit -m "branch test"
    $git branch master
    $git merge dev //将指定的dev分支合并到当前分支
    $git branch -d dev //删除dev分支

    总结:$git branch //查看branch
    1.
    $git branch dev //新建分支
    $git checkout dev //转换分支
    2.
    1等同于2
    $git checkout -b dev //新建dev分支,并且转换到dev分支
    /////////////////////////////////////////////////////解决冲突
    $git log //当出现<end>标记,输入q可退出历史记录
    当遇到master分支和fea1分支上下并行时,这时$git merge fea1就要冲突
    解决办法是在master分支重新修改这个冲突的文件,再commit,两个文件会分支会合并在一起,最后删除fea1分支
    /////////////////////////////////////////////////////
    当我误操作
    $git commit README.md
    做操作提示:
    If no other git process is currently running, this probably means a
    git process crashed in this repository earlier. Make sure no other git
    process is running and remove the file manually to continue.
    解决:

      rm -f ./.git/index.lock


    续:分支管理策略
    git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:'git pull origin master'就是将origin这个版本库的代码更新到本地的master主枝

  • 相关阅读:
    sql优化
    mysql_存储过程_后一行减去前一行
    python基础笔记
    atom使用markdown
    tensorboard遇到的坑
    WordPaster-Firefox浏览器控件安装方法
    WordPaster.exe安装教程
    Web大文件上传控件-bug修复-Xproer.HttpUploader6
    Web大文件下载控件更新-Xproer.HttpDownloader
    Web大文件上传控件-asp.net-bug修复-Xproer.HttpUploader6.2
  • 原文地址:https://www.cnblogs.com/gabygoole/p/4972633.html
Copyright © 2011-2022 走看看