Git学习

大二就要开学了 - -。

 

暑假在家学了点Qt,终于完成了梦寐以求的图形版计算天数 工具 ~ ~。(源码:https://github.com/NitefullWind/countDaysByQt)。发现慢慢看书大部分还是能看懂的,不过到后面实在吃力,才意识到自己c++基础没打牢真是不行,于是又退回继续学没看完的c++去了。。。等到快开学才意识到学习Qt期间没做笔记啊啊啊啊啊,等下次继续学不知道还能记起来多少。唉。

 

下午无聊突然想起我用Qt完成的小工具,突然想到应该把代码托管到我的github上(因为注册了账号至今还是0上传啊啊啊啊)。于是又拾起了git。。。发现有了github for windows ,看着教程很快稀里糊涂把代码传了上去,可是还有很多地方不懂,随便查了一下原来git上有很多知识需要学习,恰好发现廖雪峰的官方网站 上写了git 教程(还发现他吧Python的教程也更新完了,又有的学(wan)了 ~ ~)。花了两个小时看了一下,涨了不少见识,想想又有那么多知识进了脑袋,是时候写一篇博客来拯救我这捉急的记忆力了 =。=

 

感觉主要都是一些命令吧,于是一下为简单Git学习笔记:

 

Git 常用命令:

 

$ mkdir file       //创建一个file目录

$ cd file              //进入file目录

$ pwd               //显示当前目录

$ cat file.txt     //显示文件内容。

 

/*创建版本库(仓库)*/

$ git init                               //把当前目录变成git可以管理的仓库(当前目录下多了一个 .get的目录)

$ git add file.txt               //把文件添加到仓库。反复使用可添加多个文件到仓库。

$ git commit –m “XXX”    //把文件提交到仓库。-m后面输入的是本次提交的说明。

 

/*修改文件并保存为多个版本*/

$ git status                         //显示当前仓库的状态。经常使用此命令以随时掌握工作区状态。

$ git diff file.txt                  //显示被修改内容。如果用git status得知有文件被修改,可用此命令查看被修改的内容。确认无误后即可用add和commit提交修改。每次提交即为一个不同版本。

 

/*版本回退*/

$ git log                                         //显示从最近到最远的提交日志。显示版本号,作者,提交时间及提交说明等信息。

$ git log--pretty=oneline          //显示简化内容。仅显示版本号及提交说明。

$ git reset --hard HEAD^          //退回到上一版本。Git中用HEAD表示当前版本(即最新的提交),HEAD^表示上一个版本,HEAD^^表示上上一个版本…… HEAD~100表示往上100个版本。

$ git reflog                                   //查看历史命令。显示版本号及命令描述。

$ git reset --hard ****              //回到某一版本,****为版本号。其中版本号不必全写,只需前几位字符即可。


——2014年9月14日00:36:20


工作区和暂存区

工作区(WorkingDirectory):就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区。

版本库Repository):工作区有一个隐藏目录“.git”,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

 

$ git checkout --file.txt          //放弃工作区的修改

$ git reset HEAD file.txt           //放弃暂存区的修改

$ git rm file.txt                                     //删除文件。执行后工作区的文件将被删除。1).执行 git commit –m “XXX”后版本库中的文件也将被删除。2).执行git checkout --file.txt取消删除。(但我操作未成功,删除后我必须提交,然后恢复到上一版本才能恢复。。。)

 

/*远程仓库*/

在github中创建一个新仓库。


根据提示我们可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联。


我们可以复制上面的命令把本地仓库的内容推送到远程仓库:

$ git remote add origin https://github.com/NitefullWind/test.git     //本地仓库与远程仓库关联

$ git push -u origin master                   //把本地仓库的内容推送到远程仓库。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub

注意:

1).我第一次使用这两条命令时出现了错误:fatal remote origin already exists。后来删除了github安装目录下的一段话后成功。请参考:http://blog.csdn.net/god_wot/article/details/10522405

2).push 失败,方法是 1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来 2、再输入$ git push origin maste。(也在上面链接的文章中有介绍)

3).Git支持多种协议,命令中也可以使用 git@github.com:nitefullwind/test.git

$ git clone git@github.com:nitefullwind/test.git//将远程仓库克隆至本地仓库。

/*分支*/

$ git branch          //查看分支。*后面为当前分支。

$ git branchname     //创建分支。

$ git checkoutname        //切换分支。

$ git checkout -b name  //创建+切换分支。

$ git mergename      //合并某分支到当前分支。此为快速合并。

$ git branch -dname   //删除分支。

$ git log --graph       //查看分支合并图。可添加 --pretty=oneline属性以简化显示。

当两个分支分别作了修改并提交后,Git无法执行快速合并,只能视图吧各自的修改合并起来,但这种合并就可能会有冲突。出现冲突后我们必修手动解决冲突后再提交。合并完成。

学了这些差不多基本功能够用了,后面还有分支管理,Bug分支,多人协作,标签管理等很多内容,感觉暂时用不到,看着也挺累,先跳过了 - -。等以后编程学习的更深的时候,用的到的时候再研究吧。

 

2014年9月14日23:28:04


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值