git安装与基础使用小结+复制粘贴方法

本篇内容为git学习小结,更多内容请移步:廖雪峰的Git教程
感谢廖大神的无私奉献



安装

首先从git官网下载安装程序,然后按默认选项安装即可。

安装完成后,还需要在Git Bash命令行自报家门:

顺带一提,在git bash内复制为ctrl+insert, 粘贴为shift+insert

$ git config --global user.name "名字"
$ git config --global user.email "邮箱"`

创建仓库

接下来便可以创建仓库先显示当前目录所在位置,再通过git init命令把这个目录变成Git可以管理的仓库:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

pwd命令用于显示当前目录 , 仓库创建成功后.git目录默认是隐藏的,用ls -ah命令就可以看见。


添加文件到仓库

把一个文件放到Git仓库只需要两步。作为测试创建一个readme.txt文档到learngit目录下

第一步,用命令git add告诉Git,把文件添加到仓库
执行第一步的命令,没有任何显示,Unix的哲学是“没有消息就是好消息”,说明添加成功。

第二步,用命令git commit告诉Git,把文件提交到仓库,git commit命令,-m后面输入的是本次提交的说明

$ git add readme.txt

$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

git commit命令执行成功后会告诉你,1 file changed:几个文件被改动(我们新添加了一个readme.txt文件);2 insertions:插入了几行内容(readme.txt有两行内容)。

commit可以一次提交很多文件,所以可以多次add不同的文件。

以下均使用readme.txt来举例,代表<file>(所使用的文件)


文件修改与查看修改内容

后续对文件做修改后要随时掌握工作区的状态,使用git status命令。

如果git status告诉你有文件被修改过,
git diff可以查看工作区修改内容与暂存区的差别,
确认后再使用 git commit -m"content"提交到仓库。

顺带一提git diff --cached命令可以查看暂存区与版本库的区别。
git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别


版本回退

HEAD指向的版本就是当前版本
因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

cat readme.txt命令可查看文件内容

git log后可输入q退出命令返回


工作区与暂存区

基于篇幅长度,本篇只记录学习小结
暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么
对工作区和暂存区还不了解移步:廖雪峰的Git教程

命令git restore -- readme.txt(旧版为git checkout -- readme.txt)
意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt修改后还没有被git add到暂存区,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经git add到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commitgit add时的状态。

用命令git reset HEAD readme.txt可以把暂存区的修改撤销掉(unstage),重新放回工作区。


删除文件

在已git commit的情况下直接在文件管理器中删除或者使用rm readme.txt
这时工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:
现在有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

$ git rm readme.txt
rm 'test.txt'

$ git commit -m "remove readme.txt"
[master d46f35e] remove readme.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 readme.txt
 

另一种情况是删错了,因为版本库里还有呢,
所以可以使用命令git restore -- readme.txt(旧版为git checkout -- readme.txt)恢复


关联远程仓库

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

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

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.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文件的内容后点击add key即可。

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。


远程库上传

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

如出现! [rejected] master ->报错可使用
git pull origin master --allow-unrelated-histories //把远程仓库和本地同步,消除差异

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

git remote -v可查看远程库地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值