zoukankan      html  css  js  c++  java
  • git实用操作21条

    1.建空目录 mkdir e:gg

    2.把该目录变成仓库 git init   //发现当前目录下多了一个.git

    3.新建文件readme.txt

    4.添加文件到仓库  git add readme.txt     //添加到暂存区

    5.文件提交到仓库       git commit -m "wrote a readme file"  //后面是日志,提交暂存区的内容

    6.查看修改的内容 git diff readme.txt

    7.查看历史记录   gig log (--pretty=oneline)//括号里面的表示只显示一行

    8.回退到历史版本

    8.1 git reset --hard HEAD^  [head表示当前,head^回到上一个,head~`100 退100个版本]

    8.2 git reset --hard 3628164  【3628164 版本号,没有必要写全,写五个就行】//如果屏幕没有关掉

    8.3 git reflog 【记录每一次命令,可以回退到任意版本】

    [与svn区别] 三个回退到两个版本,再查看是2个,svn是四个

    9.撤消修改

    9.1 没有提交到暂存区 git checkout -- readme.txt

    让这个文件回到最近一次git commit或git add时的状态

    9.2 提交到暂存区,但没有commit

    git reset HEAD readme.txt

    10.删除文件

    10.1 rm test.txt

     

    11.添加远程库

    11.1 关联远程库 git remote add origin git@server-name:path/repo-name.git

    11.2 第一次推送master分支的所有内容  git push -u origin master

    11.3 以后推送最新修改 git push origin master

    12.从远程库中克隆

    12.1 git clone git@github.com:michaelliao/gitskills.git

    【Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。】

    13 创建与合并分支

    13.1 创建 dev分支,并切换到dev分支   git checkout -d dev

    13.2查看当前分支  git branch //当前分支前面会标有*号

    13.3 提交代码到分支,

    git add readme.txt 

    Git commit -m "test"

    13.4 切换回master git checkout master

    13.5 把分支的成果merge到master

    Git merge dev  //合并指定分支到当前分支

    13.6 删除dev分支   git branch -d dev

    14.合并分支在删除分支后,不丢失信息

    14.1 git merge --no-ff -m "merge with no-ff" dev

    //--no-ff参数,表示禁用Fast forward

    15.bug分支

    15.1 把工作现场储藏起来,修完bug以后,再恢复

    Git stash

    15.2 eg在master分支上修复bug,切换到master分支,并创建bug分支

    Git checkout master

    Git checkout -b issue-101

    15.3 修复完成后切换到master分支,合并,删除bug分支

    Git checkout master

    Git merge --no-ff -m "merge bug fix 101 " issuse-101

    Git branch -d issue-101

    15.4 回到dev分支干活

    Git checkout dev

    查看工作现场

    Git stash list

    恢复工作现场

    1.git stash pop[恢复并删除stash]

    2.git stash apply 恢复

         git stash drop 删除

    1. 多人协作
      1. 推送自己的修改 git push origin branch-name
      2. 推送失败,表明远程分支比本地新,用git pull合并
        1.   
        2. 提示no        tracking information,表明本地分支与远程分支没有关联
        3.   
        4. Git branch        --set-upstream branch-name origin/branch-name
      1. 合并冲突,解决冲突。并在本地提交
      1. 推送 git       push origin branch-name
      1. 查看远程库信息 git       remote -v
      1. 在本地创建和远程分支对应的分支
        1.   
        2. Git        checkout -b branch-name origin/branch-name
    1. 创建标签
      1. 新建一个标签 git       tag <name>  //git tag v1.0
      1. 指定标签信息 git       tag -a <tagname> -m "baldsfadsaf"
      1. 用pgp签名标签 git tag -s       <tagname> -m "dsafadsf"
      2. 查看所有标签 git tag
    1. 操作标签
      1. 推送一个本地标签 git push origin       <tagname>
      2. 推送全部未推送的标签 git push origin       --tags
      3. 删除本地一个标签 git tag -d       <tagname>
      4. 删除一个远程标签 git push origin       :refs/tags/<tagname>
    1. 忽略特殊文件
      1. 在要目下创建.gitignore,把忽略的文件名填进去
      1. windows带的垃圾文件

    # Windows:

    Thumbs.db

    ehthumbs.db

    Desktop.ini

    .py[cod]

    *.so

    *.egg

    *.egg-info

    1. 配置别名
      1. Eg st 代表Status

    Git config --global alias.st status

    1. Eg  lg的经典配置 会带有不同颜色

    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

    1. 配置git服务器
      1. Debian/ubuntu环境
      2. 安装git Sudo apt-get install       git
      3. 创建git 用户,运行git服务
        1.   
        2. Sudo adduser git
      1. 创建证书登陆
        1.   
        2. 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
      1. 初始化git仓库
        1.   
        2. Sudo git init --bare        sample.git
      1. 不让用户登陆到服务器去改工作区
        1.   
        2. Sudo        chown -R git:git sample.git
      1. 禁用shell登陆
        1.   
        2. 编辑/etc/passwd

    git:x:1001:1001:,,,:/home/git:/bin/bash

    改为:

    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

    git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

    1. 远程克隆仓库
      1. git clone       git@server:/srv/sample.git
  • 相关阅读:
    Servlet 生命周期
    深度学习笔记(十)Augmentation for small object detection(翻译)
    fast.ai(零)windows + pytorch 0.4
    win10 + cuda8.0 + caffe SSD + vs2015 + python3
    PyTorch(二)Intermediate
    PyTorch(一)Basics
    Caffe 使用记录(五)math_functions 分析
    win10 + gluon + GPU
    python tricks
    深度学习笔记(九)感受野计算
  • 原文地址:https://www.cnblogs.com/hsapphire/p/4112842.html
Copyright © 2011-2022 走看看