Git 备忘录
一、安装Git
Linux上安装Git
$ git
然后按提示操作即可
Windows上安装Git
打开如下网站地址,下载图中绿框所示程序
https://git-scm.com/download/win

安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
二、创建版本库(repository)
首先,选择一个合适的地方,创建一个空目录,例如:
$ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit
第二步,通过git init命令把这个目录变成Git可以管理的仓库:
$ git init Initialized empty Git repository in /Users/michael/learngit/.git/
三、常用命令
3.1.1 把文件添加到版本库
$ git add filename
3.1.2 添加所有文件
$ git add . $ git add --all
3.2. 把文件提交到本地仓库
$ git commit -m "message"
3.3. 查看仓库状态
$ git status
3.4. 查看修改内容
$ git diff HEAD -- filename
3.5. 查看历史版本提交记录
$ git log
$ git log --pretty=oneline
3.6. 回退到之前的版本
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
$ git reset --hard HEAD^
$ git reset --hard 1094a HEAD is now at 83b0afe append GPL
3.7. 查看历史指令
$ git reflog
3.8. 撤销修改
$ git checkout -- filename
3.9. add之后的撤销
$ git reset HEAD filename
小结
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考3.6,不过前提是没有推送到远程库。
四、远程仓库
第1步:创建SSH Key
在用户主目录下,看看有没有.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是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
在Repository name填入库名称例如learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
第3步:先有本地库,后有远程库的时候,如何关联远程库
首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:
在本地的learngit仓库下运行命令:
$ git remote add origin git@github.com:michaelliao/learngit.git
注意,把上面的michaelliao替换成你自己的GitHub账户名
把本地库的所有内容推送到远程库上
$ git push -u origin master
$ git push -u origin main
从现在起,只要本地作了提交,就可以通过如下命令把本地 master 分支的最新修改推送至 GitHub,现在,你就拥有了真正的分布式版本库!
$ git push origin master
$ git push origin main
小结
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
关联后,使用命令git push -u origin master第一次推送master分支的所有内容
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
第3步:先有远程库,后有本地库,如何关联远程库
首先,登陆GitHub,创建一个新的仓库,名字叫gitskills
勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件
用命令git clone克隆一个本地库:
$ git clone git@github.com:michaelliao/gitskills.git
注意把Git库的地址换成你自己的
五、其他指令
5.1. 删除本地 Git 仓库
$ rm -rf .git #删除
5.2. 退出vim
第1种方法:一直按住esc ,再连续按大写的z两次就退出来了
第2种方法:先esc,然后按住shift键,q! 【强制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加个!】
六、疑难解答
Q:输入git add readme.txt,得到错误:fatal: not a git repository (or any of the parent directories)。
A:Git命令必须在Git仓库目录内执行(git init除外),在仓库目录外执行是没有意义的。
Q:输入git add readme.txt,得到错误fatal: pathspec 'readme.txt' did not match any files。
A:添加某个文件时,该文件必须在当前目录下存在,用ls或者dir命令查看当前目录的文件,看看文件是否存在,或者是否写错了文件名

浙公网安备 33010602011771号