Git笔记
2016-03-13 09:29
489 查看
Git笔记
会持续更新,内容来自廖雪峰老师的网站,由自己学习整理记录下来安装
Linux上安装先输入git,看有没有看装
$ git The program 'git' is currently not installed. You can install it by typing: //安装 sudo apt-get install git
创建版本库
$ git init
添加文件到Git仓库,分两步:
第一步,使用命令
git add <file>,注意,可反复多次使用,添加多个文件;
第二步,使用命令
git commit -m“更新日志”,完成。
版本控制
版本状态
1.查看
//查看仓库当前状态 git status //查看修改 git diff readme.txt //提交 git add readme.txt git status git commit -m "修改日志" git status
在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用
git log命令查看:
$ git log commit 3628164fb26d48395383f8f31179f24e0882e1e0 Author: Michael Liao <askxuefeng@gmail.com> Date: Tue Aug 20 15:11:49 2013 +0800 append GPL commit ea34578d5496d7dd233c827ed32a8cd576c5ee85 Author: Michael Liao <askxuefeng@gmail.com> Date: Tue Aug 20 14:53:12 2013 +0800 add distributed commit cb926e7ea50ad11b8f9e909c05226233bf755030 Author: Michael Liao <askxuefeng@gmail.com> Date: Mon Aug 19 17:51:55 2013 +0800 wrote a readme file
git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是
append GPL,上一次是
add distributed,最早的一次是
wrote a readme file。
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上
--pretty=oneline参数:
commit id(版本号)
2.版本回退
当知道版本号时(通过git log查看),
HEAD表示当前版本,上版本就是
HEAD^,上上版本是
HEAD^^,上一百个版本就是
HEAD~100
例如:
$ git reset --hard HEAD^ HEAD is now at ea34578 add distributed //可以输入版本号来指定版本 $ git reset --hard 3628164 HEAD is now at 3628164 append GPL
如果回退版本后悔了,找不到
commit id时,用
git reflog用来记录你每一次命令
$ git reflog ea34578 HEAD@{0}: reset: moving to HEAD^ 3628164 HEAD@{1}: commit: append GPL ea34578 HEAD@{2}: commit: add distributed cb926e7 HEAD@{3}: commit (initial): wrote a readme file
撤销修改
撤销文件在工作区的全部修改中的–很重要,没有就是切换分支
git checkout -- file
如果已经git add到缓存区,撤销用git reset
git reset HEAD file
删除文件
//删除文件 rm test.txt //查看删除那些文件, //这时工作区和版本库状态不一致 git status
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
git rm test.txt rm 'test.txt' $ git commit -m "remove test.txt"
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
远程仓库
远程仓库已经准备好,使用git clone克隆一个本地库$ git clone git@github.com:michaelliao/gitskills.git $ cd gitskills $ ls
分支管理
当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:
创建分支
创建dev分支,然后切换到dev分支$ git checkout -b dev //参数 -b 表示创建并切换,相当于如下两行 $ git branch dev $ git checkout dev
查看分支
查看分支,当前分之前有一个*号$ git branch * dev master
合并分支
合并某分支到当前分支git merge <name>
删除分支
git branch -d <name>
解决冲突
git merge featurel Auto-merging readme.txt CONFLICT (content): Merge conflict in readme.txt Automatic merge failed; fix conflicts and then commit the result.
出现冲突用 git status
Git has a mutable index called stage. Git tracks changes of files. <<<<<<< HEAD Creating a new branch is quick & simple. ======= Creating a new branch is quick AND simple. >>>>>>> feature1
Git用
<<<<<<<,
=======,
>>>>>>>标记出不同分支的内容,我们修改如下后保存:
相关文章推荐
- Linux socket 初步
- RPC failed; result=22, HTTP code = 411
- Linux Kernel 4.0 RC5 发布!
- 【CF 应用开发大赛】IT Share(IT分享网)
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- git更新已經刪除的文件
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制