GIT学习笔记

GIT学习笔记


看着SovietPower一直没有弃更,还发现自己的博客还有人看,所以想继续写写。
以后尝试记录下自己的学习笔记,课程作业一类的。


1、设置用户名和设置邮箱

$ git config --global user.name "menjianotng" 
$ git config --global user.email "menjiantong@foxmail.com"
$ git config user.name // 查看用户名
$ git config user.email // 查看用户邮箱
$ git config --global --unset user.name "menjiantong" // 取消设置的用户名
$ git config --global --unset user.email "menjiantong@foxmail.com" //取消设置的邮箱

2、创建本地库

版本库:版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

$ cd F:
$ mkdir ceshi_git
$ cd ceshi_git
$ pwd // 显示当前路径
$ git init // 初始化,把这个目录变成Git可以管理的仓库

3、把文件添加到版本库

git其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

首先本地创建一个文件\(readme.txt\),并将这个文件放到ceshi_git下(子目录也可以),否则git找不到。然后我们尝试将这个文件添加到git仓库。

$ git add readme.txt 
$ git commit -m "提交了readme.txt" // 引号中为本次提交的说明
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

git add < file> 可以使用多次,然后使用一次git commit一次把他们提交到git仓库。

4、版本回退

此时我们可以不停的修改readme.txt,并且再每次修改了提交,然后如果对文件修改是出了错误,便可以使用git查看修改了什么地方,并回退的最后一次正确的地方。

$ git log // 查看修改日志
$ git log --pretty=oneline // 以一行形式查看
$ git reset --hard HEAD^ // 回退到上一版本
$ git reset --hard HEAD^^ // 回退到上上版本   
$ git reflog // 查看命令历史,并可以查询到每个版本的id,可以版本前进(与回退对应)
$ git reset --hard ____  // ____上可以输入每个版本的id

5、工作区和暂存区

工作区(Working Directory):电脑里能看到的目录,比如ceshi_git文件夹就是一个工作区
暂存区:即stage部分,使用git add可以将文件添加到这里
master:即git控制的仓库,Head为指针。

注意:每次修改没有将文件放到stage(暂存区),必须用git add命令才可以更新到stage,然后用git commit提交到仓库。
比如,
1、git add readme.txt
2、修改readme.txt
3、git commit -m "提交readme.txt"
此时提交的是未改变的readme.txt

$ git diff HEAD -- readme.txt // 提交后,可以使用此命令可以查看工作区和版本库里面最新版本的区别

6、撤销修改

如果在本次工作区将本地文件写错了,可以使用git从本地版本库恢复。
1、本地文件写错,但没有添加到暂存区(stage),此时

$ git restore <file> // 从本次版本库恢复
$ git checkout -- <file> // 从本地版本库恢复

2、本地文件写错,提交到了暂存区

$ git restore --stated <file>
$ git reset HEAD <file>

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

3、提交到了暂存库,使用版本回退恢复。

7、删除文件

现在从本地工作区删除了一个文件,git仓库中却有这个文件。

1、如果确实需要删除,可以从git仓库中删除。

$ git add text.txt // 添加text.txt到缓存区
$ git commiet -m "提交text.txt到git仓库" // 添加text.txt到git仓库
$ rm text.txt //删除本地工作区的text.txt
$ git status // 此时显示delete text.txt,此修改没有进入缓存区
$ git rm text.txt // 从git仓库删除,
$ git status // 此时显示delete text.txt,此修改已经进入缓存区
$ git commit -m "删除了text.txt" // 此时git仓库已经更新,没有了text.txt

2、不小心删除了,可以从本地git仓库恢复

$ git checkout text.txt // 从本地git仓库恢复

8、远程仓库

cd ~/.ssh //查看本地ssh key
ls // 当前文件下的所有文件,包含 id_isa 和 id_isa.pub 
$ ssh-keygen -t rsa -C "youremail@example.com" // 如果没有,使用这个生成密钥,一路回车

\(id\_rsa\)\(id\_rsa.pub\)这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

9、使用github建立仓库

1、添加ssh_key
登录github->setting->ssh and GPG keys->New ssh keys

将id-isa.pub的内容复制进去即可

2、创建github仓库

创建成功后

这里有仓库的https和ssh,github推荐使用一下代码创建一个新的仓库或者从本地的git版本库上传。

//create a new repository on the command line 创建github远程仓库
echo "# ceshi_git" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:menjiantong/ceshi_git.git
git push -u origin main

//push an existing repository from the command line 上传本地github仓库
git remote add origin git@github.com:menjiantong/ceshi_git.git // menjiantong为用户名,ceshi_git为远程github仓库名
git branch -M main // 将默认分支改名为main
git push -u origin main

3、上传本地git仓库到github远程仓库
在本地的ceshi_git仓库下运行上面的三行命令,因为我们添加了本地ssh_key,所以是可以推送上去的。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

通过上面三行可以将本地库与远程仓库关联,以后每次本地修改都可以推送到远程仓库进行更新。
本地库也可以和远程库取消关联(但github远程仓库不会真正删除,需要从网站上删除)

$ git push // 当本地仓库进行了改变时,使用这一行命令可以将本地库推送到和远程仓库
$ git push origin master // 应该等同于上面,廖雪峰博客写的
$ git remote -v // 查看远程仓库信息
origin  git@github.com:michaelliao/learn-git.git (fetch)
origin  git@github.com:michaelliao/learn-git.git (push)
$ git remote rm origin

未完


参考:廖雪峰的博客

posted @ 2021-09-22 17:51  MJT12044  阅读(75)  评论(2编辑  收藏  举报