git操作笔记
git操作笔记
一、GIT简介
- Git是什么?
- Git是目前世界上最先进的分布式版本控制系统(没有之一)。
- Git有什么特点?
简单来说就是:高端大气上档次!
二、Git安装
- Ubuntu:sudo apt-get install git
- Windows:https://gitforwindows.org/
安装完成之后配置,在命令中输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
- Git在Windows下无法显示中文的问题,解决方案:
1、ls无法显示中文 解决办法:在git/etc/git-completion.bash中增加一行: alias ls='ls --show-control-chars --color=auto'
2、git commit无法提交中文注释 解决办法:修改git/etc/inputrc中对应的行: set output-meta on set convert-meta off
3、git log无法显示中文 解决方案:修改git/etc/profile文件 export LESSCHARSET=iso8859
三、创建版本库
1、创建版本库(repository) $ mkdir learngit $ cd learngit $ pwd -- pwd命令用于显示当前目录
2、通过git init命令把这个目录变成Git可以管理的仓库 $ git init
四、添加一个文件到版本库
1、在版本库创建一个文件
2、用命令git add告诉Git,把文件添加到仓库; $ git add fileName -- 可以先add多个文件,再commit
3、使用命令git commit,完成; $ git commit -m "wrote a readme file"
五、时光机穿梭
1、git status命令可以让我们时刻掌握仓库当前的状态 $ git status -- 虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,需要使用git diff命令
2、git diff顾名思义就是查看difference $ git diff fileName
3、文件回退 - git log命令显示从最近到最远的提交日志 $ git log - 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上?--pretty=oneline参数 $ git log --pretty=oneline - 准备把readme.txt回退到上一个版本,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^, 上上一个版本就是HEAD^^,上一百个版本就是HEAD~100,使用git reset命令 $ git reset --hard HEAD^ -- 使用cat fileName可以查看是否返回到了上一个版本 - 先返回了历史版本,但是现在我又想恢复,仍然使用git reset命令,后面跟上commit id(不用输入全部,可以输入部分就可以) $ git reset --hard 52d4b1 - 找不到新版本的commit id该怎么恢复?Git提供了一个命令git reflog用来记录你的每一次命令,可以找到commit id $ git reflog --
创建远程仓库
1、GitHub上申请账号
2、创建SSHKey - 在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。 - 如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key: $ ssh-keygen -t rsa -C "youremail@example.com" - 如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件, 这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。(文件一定要在用户/.ssh文件中才可以) - 登陆GitHub,打开“Account settings”,“SSH Keys”页面 - 点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
3、在GitHub上创建版本库,把本地仓库的内容推送到GitHub仓库 $ git remote add hfx_origin git@github.com:Huashfx/hfxgit.git $ git push -u origin master - 如果推不上去可以把push改成pull - 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。 - 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支, 还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
4、从现在起,只要本地作了提交,就可以通过命令: $ git push hfx_origin master
六、删除本地/远程分支
先切换到master分支
git checkout master
获取所有分支
git branch -a
删除远程分支
git push origin --delete ‘你的版本’
删除本地分支
git branch -d ‘你的版本’