学习廖雪峰git教程的笔记

toc

安装git

  1. 可以从git官方下载网站下载对应的git版本,安装过程中一路next即可;linux下直接使用命令sudo apt-get install git安装
  2. 需要配置local信息
    $ 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
#https方式
url = https://github/HarveyHub/Python
# ssh方式
url = git@github.com:HarveyHub/Python

远程仓库

  1. 关联远程仓库和本地仓库,在GitHub创建好空的repository之后,根据提示关联已经有的本地仓库,在本地仓库目录下执行
    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. 分支相关命令
    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忽略特殊文件,用户可以修改指定忽略的文件

Leave a Reply

Your email address will not be published. Required fields are marked *