zoukankan      html  css  js  c++  java
  • Git学习笔记

    //配置email地址和名字
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"

    //把当前目录变为git仓库,建好后会多出一个.git目录
    git init

    //文件添加,放入暂存区
    git add *

    //文件提交,提交暂存区的内容;如果最新改动没有add,这个改动不会被commit
    git commit -m "comment"

    //显示当前提交情况
    git status

    //查看修改内容,只支持纯文本文件
    git diff readme.txt

    //查看历史日志
    git log --pretty=oneline

    //回到上一个版本HEAD^, 上上一个版本HEAD^^, 往上100个版本HEAD~100
    git reset --hard HEAD^

    //回到指定版本,commit_id只需要写前几位
    git reset --hard commit_id

    //查看commit_id日志
    git reflog

    //把该文件的修改全部撤销,回到最近一次commit或add的状态
    //没有放入暂存区时,撤销修改就回到和版本库一样的状态
    //文件已添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区的状态
    git checkout -- readme.txt

    //撤销某个文件暂存区的修改
    git reset HEAD readme.txt

    //删除文件
    git rm test.txt

    //创建SSH Key
    ssh-keygen -t rsa -C "youremail@example.com"

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

    //关联后推送分支内容
    git push -u origin branch-name

    //每次本地提交后,推送最新修改
    //本地新建的分支如果不推送到远程,对其他人就是不可见的
    git push origin branch-name

    //如果推送失败,因为远程分支比你的本地更新,需要先抓取远程的最新提交
    git pull

    //如果git pull提示"no tracking information",则需要建立本地分支和远程分支的关联
    git branch --set-upstream branch-name origin/branch-name

    //在本地创建和远程分支对应的分支
    git checkout -b branch-name origin/branch-name

    //查看远程库的信息
    git remote -v

    //克隆一个git repository
    git clone git@server-name:path/repo-name.git

    //创建分支
    git branch dev

    //切换分支
    git checkout dev

    //创建分支并切换到分支
    git checkout -b dev

    //查看分支
    git branch
    git branch -a

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

    //合并分支时禁用fast forward,从而保留分支信息,创建新的提交
    git merge --no-ff -m "merge with no-ff" dev

    //删除分支
    git branch -d dev

    //强行删除一个没有合并的分支,将丢失修改
    git branch -D feature1

    //查看分支合并情况
    git log --graph --pretty=oneline --abbrev-commit

    //保存现场,这样你可以先做其它事,可以多次保存
    git stash

    //恢复现场,stash内容并不删除
    git stash apply

    //可以手动删除stash内容
    git stash drop

    //恢复现场同时删除stash内容
    git stash pop

    //查看stash内容
    git stash list

    //恢复到指定的stash
    git stash apply stash@{0}

    //创建标签
    git tag v1.0

    //查看标签
    git tag
    git show tagname

    //创建标签,附带说明
    git tag -a v0.1 -m "version 0.1 released" commit_id

    //对某个commit_id打上标签
    git log --pretty=oneline --abbrev-commit
    git tag v0.9 commit_id

    //用私钥签名一个标签,采用PGP签名,先要安装gpg
    git tag -s v0.2 -m "signed version 0.2 released" commit_id

    //删除标签
    git tag -d tagname

    //推送某个标签到远程
    git push origin tagname

    //推送全部未推送过的本地标签
    git push origin --tags

    //要删除远程标签,先从本地删除
    git tag -d v0.9
    git push origin :refs/tags/v0.9

    //让git显示颜色
    git config --global color.ui true

    //要忽略某些文件,需要编写.gitignore文件并提交该文件
    Thumbs.db
    *.pyc
    *.egg
    build
    Content/photos/

    //配置命令的别名,--global针对当前用户起作用,不加则针对当前仓库
    //可以在配置文件.git/config中查看已经添加的别名
    //当前用户的git配置文件则在用户目录下的.gitconfig文件中
    git config --global alias.st status
    git st

    //配置命令的别名,把暂存区的修改撤销
    git config --global alias.unstage 'reset HEAD'
    git unstage test.py

    //配置命令的别名,让其显示最后一次提交信息
    git config --global alias.last 'log -1'
    git last

    //搭建git私有服务器
    $ sudo apt-get install git
    $ sudo adduser git
    收集所有需要登录的用户的公钥id_rsa.pub文件,把所有公钥
    导入到/home/git/.ssh/authorized_keys文件里,一行一个
    选定一个目录作为Git仓库,比如/srv/sample.git,在/srv目录下输入命令:
    $ sudo git init --bare sample.git
    创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享
    服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
    $ sudo chown -R git:git sample.git
    创建的git用户不允许登录shell,这可以通过编辑/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每次一登录就自动退出
    现在,可以通过git clone命令克隆远程仓库:
    $ git clone git@server:/srv/sample.git
    要方便管理公钥,用Gitosis
    要像SVN那样变态地控制权限,用Gitolite

  • 相关阅读:
    ubuntu16.04下笔记本自带摄像头编译运行PTAM
    ar的主流算法
    ubuntu下安装meshlab
    打开.py文件的方法
    Python_ip代理
    对书名的抓取
    JS动态增加删除UL节点LI及相关内容示例
    js遍历json
    js移除某一类的div
    工厂模式
  • 原文地址:https://www.cnblogs.com/shihui142857/p/4623116.html
Copyright © 2011-2022 走看看