git学习笔记

Git是目前世界上最先进的分布式版本控制系统

git只能管理文本文件(txt,网页,代码等,word是二进制不行)且每次记录的是改动而不是整个文件。

在Mac OS X上安装Git:

brew install git

安装完成后,还需要设置用户名和邮箱,在命令行输入:

git config --global user.name "your_name"
git config --global user.email "email@example.com"

现在就可以开始愉快的学习了:
用cd切换到我们学习git的文件夹learngit

git init  #把当前文件夹变成git可以管理的仓库,成功后会有一个隐藏的.git文件夹

例子:我们要管理readme.txt,先把这个文件放在learngit文件夹下(子目录也行)

git add readme.txt  #添加这个文件到仓库,可以多次,一次多个文件添加
git commit -m "此次提交的说明信息“ #提交所有添加到仓库的文件,每次提交都会有此次提交的版本号记录

再来看几个命令:

git status  #可以让我们时刻掌握仓库当前的状态,比如有文件被修改过
git diff readme.txt  #可以查看readme.txt这个文件每次都被修改了哪些内容
git log  #可以查看提交日志(同时可以看到每次提交的版本号),为方便阅读可以用 git log --pretty=oneline
git reset --hard HEAD^ #回退到历史版本,HEAD表示当前版本,HEAD^上个版本,HEAD^^上上个版本,HEAD~100上100个版本。用hard参数会删除当前的版本!
git reset --hard shuzi #回到指定的版本。shuzi是16进制的commit id,可以在git log中查看
git reflog  #查看命令历史,可以帮助我们找到commit id来回到未来。

reset的三种参数

理解工作区,版本库,暂存区

我们创建的learngit文件夹叫工作区
learngit中隐藏的.git文件夹叫版本库
版本库中有很多东西:称为stage的暂存区,自动为我们创建的master分支,以及指向master的一个指针叫HEAD


8267383-e451ab1de45646d8.png
理解git结构

git add 把文件从工作区中添加到暂存区
git commit 把暂存区中所有的文件提交到当前分支

撤销,删除文件

git checkout -- readme.txt  #git checkout还可以用于切换分枝

git checkout --file可以丢弃工作区修改,此时分两种情况:
1.readme.txt修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
2.readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态

如果写错后已经添加到暂存区,还没有commit:
git reset HEAD file (reset命令也可以回退)可以把暂存区的修改撤销掉(unstage),重新放回工作区,再用git checkout -- readme.txt删掉修改

假如我们删掉工作区一个test.txt文件,此时工作区和版本库不一致了,git status会发现有文件被删除了
1.你确实要删除这个文件

git rm test.txt  #把版本库中此文件也删除

2.删错了,可以从版本库中恢复

git checkout -- test.txt
github
github有两种传输协议,http和ssh.
首先在github.com注册自己的账号。我的用户名叫meetliuxin
在终端输入
 ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
这样你就能用这台电脑通过ssh上传代码到github。

常用的操作:本地上已经有一个仓库叫testgit:

                      那么先在github建一个仓库testgit

                      打开终端路径切换到testgit仓库的上层文件夹再输入:

 git remote add origin git@github.com:meetliuxin/testgit.git  #关联仓库
  git push -u origin master                                     #第一次推送master分支的所有内容

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


如果一个项目从零开始或者换了个电脑要继续开发。需要从github下载到本地可以使用clone:

git clone git@github.com:meetliuxin/testgit.git

如果github更新了,工作的电脑还是上一个版本的文件:

git pull      

参考链接:廖雪峰gitgit-book




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值