git学习笔记
来源:互联网 发布:隐形口罩 知乎 编辑:程序博客网 时间:2024/06/05 19:06
为什么现在很多人提倡软件开源? 对此,我也心存疑问,在看了很多社区的讨论和度娘的讲解,对这个问题有大概的了解。
1. 软件开源,更能够让软件中的问题暴露出来,没有不存在bug的代码
2. 软件开源能够保护用户的利益,若微软有一天不复存在了,那windows可能就没有人维护了而被淘汰,开源软件则大大减少这种情况发生的风险
3. 软件开源能够让用户个性化需求得到满足
这里面就涉及到了一个问题,就是软件开源了程序员吃饭怎么办?他人拿着代码改改就用不就完事了么?
软件开源,那么将会是,任何使用该开源软件的产品也必须100%开源,并且不能将其利用到任何商业目的中去。 如果你要违反,那么你除非事先和开源者签订交易协议,
不然可能会面临官司,和高额赔偿。
这样一想软件开源可能会更好,但是就目前来说的话,想要完全实现软件开源依旧任重道远。
还有一个问题:如果别人软件不开源,那么怎么知道他是否用了开源的内容呢?(留待以后慢慢了解吧,如果有想法的可以留言哦~ 我会虚心学习的)
进入正题——git的学习
对于git的学习,我是在网上看教程学习的,网址贴出来~http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
刚刚看这个教程的时候我就被这个世界上最先进的版本控制系统给吸引了,然后又对git的创始人liuns进行了一番评价,就完全激起了我对git的学习兴趣,硬是看完教程才舍得去吃晚饭~ 下面只是我对git学习的一些笔记,想要从头学习git的可以点击上面的传送门。下面的命令是参考上述文章中的命令。
一、安装get之后的简单配置
$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"
上面可以配置你的个人信息。
$ git config --global color.ui true开启所有的显示颜色,可以让关键信息显示不同的颜色。
二、新建一个版本库
$ mkdir gitproject$ cd learngit$ git init$ git add readme.txt$ git commit -m "wrote a readme file"
git init 会创建一个.git文件,这个就是git仓库,很重要。
三、本地版本控制
$ git status<span style="white-space:pre"></span>//查看目前仓库的状态(哪些文件没有add,哪些文件没有commit,哪些文件进行了修改)$ git diff readme.txt <span style="white-space:pre"></span>//查看文件发生了哪些变化$ git log<span style="white-space:pre"></span>//历史版本记录$ git log --pretty=oneline<span style="white-space:pre"></span>//历史版本记录单行显示$ git reset --hard HEAD^<span style="white-space:pre"></span>//回退一个版本$ cat readme.txt<span style="white-space:pre"></span>//查看cat中的内容$ git reset --hard 3628164<span style="white-space:pre"></span>//回退到指定版本$ git reflog<span style="white-space:pre"></span>//查看每条命令对于git的版本控制原理:
HEAD指向的是当前节点,也就是说HEAD^指向前一节点,前两个节点就是HEAD^^或者HEAD~2,以此类推。
git之所以效率这么高,那就是因为它的很多操作都只是对指针进行操作,再大的数据变化,移动一个指针也就实现了。
$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
$ git reset HEAD readme.txt将该文件回滚到HEAD指向的版本,可以清除暂存区的内容。
$ git rm test.txt$ git checkout -- test.txt删除文件
删错了恢复到上一个版本(和上文撤销工作区一致)
四、远程仓库
1.$ ssh-keygen -t rsa -C "youremail@example.com"先在本机上生成一个密钥对,id_rsa.pub公钥,id_rsa私钥。
2.登陆GitHub 打开setting,然后进入SSH Keys 将自己的公钥复制进去,这是在自己的gethub中添加信任电脑。只有添加了的电脑才能往该GITHUB上推送。
3.在GITHUB上Creat a new repo,然后自己取一个名字,来建立一个新的Git仓库。然后他会告诉你这个Git仓库的位置
4远程库关联
$ git remote add origin git@github.com:michaelliao/learngit.git$ git push -u origin master$ git push origin master
上面:后可以复制创建仓库后输出的位置后面部分。
第一次推送,需要加上-u 参数,这样不断把本地的master分支推送,还会把本地的master和远程的master关联起来,注意,这里只会推送master分支。
6.远程库克隆
$ git clone git@github.com:michaelliao/gitskills.git
多人开发的话,每人克隆一份就可以了。
五、分支管理
$ git checkout -b dev//创建分支,并且切换分支$ git branch dev//创建分支$ git checkout dev//切换分支$ git branch<span style="white-space:pre"></span>//查看分支$ git checkout master<span style="white-space:pre"></span>//切换到master分支$ git merge dev<span style="white-space:pre"></span>//合并分支$ git branch -d dev<span style="white-space:pre"></span>//删除分支$ git branch -D dev<span style="white-space:pre"></span>//强制删除分支
$ git log --graph --pretty=oneline --abbrev-commit //查看分支历史
$ git stash<span style="white-space:pre"></span>//将当前工作区压栈$ git stash pop<span style="white-space:pre"></span>//将当前工作区出栈$ git stash apply<span style="white-space:pre"></span>//恢复工作区,但是不删除栈内工作区$ git stash drop<span style="white-space:pre"></span>//丢弃最上层栈内工作区$ git stash list<span style="white-space:pre"></span>//查看工作区栈
- 【git】git学习笔记
- Git学习笔记-Git Branching
- Git学习笔记:Git命令
- git常用命令-Git学习笔记
- Git学习笔记--Git入门
- Git 学习笔记 --- 自定义Git
- git/github学习笔记
- git 学习笔记
- Git 学习笔记
- git学习笔记
- git 学习笔记
- Git学习笔记 - 1
- Git学习笔记
- Git学习笔记 - 1
- git/github学习笔记
- git学习笔记
- Git 学习笔记
- GIT之学习笔记
- Redis和Memcached的区别
- springmvc tomcat转weblogic
- 通过UIColor创建图片
- java 获取 jar 包内文件列表
- Hibernate配置C3P0支持
- git学习笔记
- 矩阵的快速幂
- 门面模式
- HDUOJ 1005 Number Sequence(DP求公式)
- 大端模式小端模式
- powerdesigner
- nodeJS ejs模板引擎 片段视图+视图助手
- Java中怎么切换窗口
- 等待中