• git学习笔记


    学习廖雪峰git教程的笔记


    安装git

    1. 可以从git官方下载网站下载对应的git版本,安装过程中一路next即可;linux下直接使用命令sudo apt-get install git安装
    2. 需要配置local信息

      1
      2
      $ git config --global user.name "Your Name"
      $ git config --global user.email "email@example.com"

    常用命令及其功能

    本地仓库

    1. git init,将当前目录变成Git可以管理的仓库
    2. git add "existed file/folder,将该文件提交到stage,当后面是文件夹时,提交该文件夹下所有内容
    3. git commit -m "describe of commition",将git add提交到stage的内容提交到仓库中。
    4. git status查看仓库当前状态。
    5. git diff "file name",比较仓库中filename文件和工作区中该文件的区别
    6. git loggit log --pretty=online,显示从最近到最远的提交日志
    7. gitk可进入图形界面
    8. git reset --hard HEAD^,将工作区中的内容回溯到上一次提交之前。HEAD表示当前版本,上一个版本时HEAD^,上上个版本是HEAD^^,往前N个版本就是HEAD~Ngit reset --hard之后也可以接版本ID(很长的一串数字)。
    9. git reflog用来记录每一次命令,上面有之前提交的版本号,这样方便回溯或切换到之后版本。
    10. git checkout -- file,检出file在库中的版本,这会覆盖掉工作区中的file,从而实现的功能是撤销工作区文件的删改git reset HEAD filestage中的file撤销掉
    11. git rm "file"删除仓库中file文件。使用完该命令之后就不能从仓库中git chechout "file"检出该文件了。如果只是本地删除,可以检出恢复。

    12. ssh-keygen -t rsa -C "your email@example.com",创建SSH Key,一路回车下去,就会发现在用户目录下有.ssh目录,目录中会有id_rsaid_rsa.pub,这两个是SSH Key密钥对,id_rsa是私钥,不能泄露,id_rsa.pub是公钥,可以放心的告诉别人。
      登陆GitHub,点击右边自己的头像打开Setting,左边的列表中会有SSH and GPG keys,点击之后在右边会看到New SSH Key,填上Title,在Key文本框里粘贴id_rsa.pub中的内容。点Add SSH Key,就可以看到已经添加的Key。若是希望每次提交的时候不输入密码,需要将push方式改为ssh方式,而不是https方式。可以通过修改当前repository目录下.git/config中的url

    1
    2
    3
    #https方式
    url = https://github/HarveyHub/Python
    # ssh方式
    url = git@github.com:HarveyHub/Python

    远程仓库

    1. 关联远程仓库和本地仓库,在GitHub创建好空的repository之后,根据提示关联已经有的本地仓库,在本地仓库目录下执行

      1
      2
      git remote add origin https://github.com/your_name/repository_name.git
      git push -u origin master

      提交本地仓库所有内容,-u表示将本地master分支与远程的origin分支关联起来,在以后的推送和拉取时可以简化命令为git push origin master将本地库的内容推送到远程。
      git clone https://github.com/your_name/repository_name.git将远程库中内容拷贝到本地,也可以达到关联的目的。
      git remote -v查看远程库信息
      git pull 从远程抓取分支,每次提交本地库到远程库之前执行,如有冲突,先处理冲突.

    2. 分支相关命令

      1
      2
      3
      4
      5
      6
      7
      8
      git branch //查看已有分支,当前分支会有*标志
      git branch dev //创建分支
      git checkout dev //切换该分支
      git checkout -b <name> //创建+切换分支
      git merge <name> //将某分支合并到当前分支上
      git branch -d <name> //删除某分支
      git branch -D <name> //强制删除分支
      git branch --set-upstream branch-name origin/branch-name

      分支合并:
      Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,当合并分支出新冲突时,用git status查看具体情况,再手动修改合,排除冲突后进行合并。
      git log --graph,查看分支合并图
      --no-ff,合并分支时使用此参数,合并后的历史有分支,可以看出来哪些曾经修改过。
      git stash,储存当前工作现场,使用git stash list查看存储的工作现场,使用git stash applay恢复(需要使用git stash drop删除stash内容), 或者使用git stash pop恢复的同时将stash的内容删除

    3. 标签操作
      git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id
      git tag -a <tagname> -m "blablabla..."可以指定标签信息;
      git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
      git tag可以查看所有标签。
      git push origin <tagname>可以推送一个本地标签;
      git push origin --tags可以推送全部未推送过的本地标签;
      git tag -d <tagname>可以删除一个本地标签;
      git push origin :refs/tags/<tagname>可以删除一个远程标签

    4. 其他
      git config --global color.ui true:让Git显示颜色,会让命令输出看起来更醒目
      .gitignore忽略特殊文件,用户可以修改指定忽略的文件

  • 相关阅读:
    SPOJ NSUBSTR
    一点对后缀自动机的理解 及模板
    HDU 1086 You can Solve a Geometry Problem too
    HDU2036 改革春风吹满地
    POJ 2318 TOYS
    [HNOI2008]玩具装箱TOY
    HDU 3507 Print Article
    洛谷 P1231 教辅的组成(网络最大流+拆点加源加汇)
    P3984 高兴的津津
    P2756 飞行员配对方案问题(网络流24题之一)
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12099734.html
Copyright © 2020-2023  润新知