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_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_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命令查看当前目录的文件,看看文件是否存在,或者是否写错了文件名

posted @ 2020-11-18 11:34  恒星在线  阅读(49)  评论(0)    收藏  举报