git学习的步骤指令(一)
第一步: 是安装完毕git后,在git bash下创建一个新的仓库(创建一个新的版本库)的过程
- git config --global user.name "name"
- git config --global user.email "xxxx@aaaa.com"
- cd f:/
- ls
- mkdir learn_git
- cd learn_git
- pwd
- git init
- ls -ah
第二步:把文件添加到版本库
在learn_git文件夹下创建一个read.txt文件。
- git add read.txt
- git commit -m "wrote a read.file"
小结:初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
-
第一步,使用命令
git add <file>,注意,可反复多次使用,添加多个文件; -
第二步,使用命令
git commit,完成。
第三步:检测仓库状态和检测文件更改
修改read.txt的文件内容
- git status
- git diff read.txt
- git add read.txt
- git status
- git commit -m "change of the read.txt is committed"
- git status
小结
-
要随时掌握工作区的状态,使用
git status命令。 -
如果
git status告诉你有文件被修改过,用git diff可以查看修改内容。
第四步:版本回退
- git log
- git log --pretty=oneline
在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
- git reset --hard HEAD^
- cat read.txt
- git log
- git reset --hard 84712(原先最新的版本号)
- git reflog
小结
现在总结一下:
-
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。 -
穿梭前,用
git log可以查看提交历史,以便确定要回退到哪个版本。 -
要重返未来,用
git reflog查看命令历史,以便确定要回到未来的哪个版本
每次修改,如果不add到暂存区,那就不会加入到commit中。
撤销修改
先对read.txt进行修改.但不add。
- git status
- git checkout -- read.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
当对read.txt进行修改后,而且add到了暂存区。
- git status
- git reset HEAD read.txt
Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区.
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
- git reset HEAD read.txt 是将暂存区的内容清掉,但是在本地的工作区中的修改还是存在。所以要想恢复修改前的状态。在使用git reset HEAD read.txt后,还要使用git checkout -- read.txt
- git checkout -- read.txt
小结
又到了小结时间。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件
可以先打开文件夹鼠标删除,也可以在bash下用rm LICENSE.txt对LICENSE.txt进行删除操作,此时用git status会发现删除操作为红色,表示修改还未提交到暂存区。所以用git add LICENSE.txt或者是git rm LICENSE.txt可以将删除操作提交到暂存区。
也可以直接用git rm LICENSE.txt一步到位。
- git commit -m "remove LICENSE.txt" 将文件删掉
- git checkout HEAD LICENSE.txt 还原
小结
git 是面向文件的修改操作的。删除也是对文件的一种修改操作。其更改方法与修改文件一样。git reset HEAD... , git checkout ........... 。
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
远程仓库
创建一个github账号
- 第1步:创建SSH Key。 ssh-keygen -t rsa -C "xxxxxx@hhh.com"
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。PS:我的没在自己设置的仓库里。在D盘。是在安装git的文件目录下?
-
第2步:1.登陆GitHub,打开“Account settings”,“SSH Keys”页面:
2.然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴
id_rsa.pub文件的内容;3.点“Add Key”,你就应该看到已经添加的Key;
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。
浙公网安备 33010602011771号