Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
executable file 154 lines (104 sloc) 7.03 KB
--------------------------------------------------------------------------
$ git clone git://github.com/schacon/grit.git
is clone and not checkout.
Git receives a copy of nearly all data that the server has. Every version of every file for the history of the project is pulled down when you run git clone.
--------------------------------------------------------------------------
here is another example .gitignore file:
# a comment this is ignored
*.a # no .a files
!lib.a #but do track lib.a, even though you’re ignoring .a files above
/TODO #only ignore the root TODO file, not subdir/TODO
build/ #ignore all files in the build/ directory
doc/*.txt #ignore doc/notes.txt, but not doc/server/arch.txt
--------------------------------------------------------------------------
Providing the -a option to the git commit command makes Git automatically stage every file that is already tracked before doing the commit, letting you skip the git add part:
--------------------------------------------------------------------------
git commit --amend
This command takes your staging area and uses it for the commit. If you’ve have made no changes since your last commit (for instance, you run this command it immediately after your previous commit), then your snapshot will look exactly the same and all you’ll change is your commit message.
-----------------------------git使用注意事项---------------------------------------------
Do not check in the .bundle directory, or any of the files inside it. Those files are specific to each particular machine, and are used to persist installation options between runs of the bundle install command.
--------------------------------------------------------------------------
GIT学习笔记1--基本使用
6人收藏此文章, 收藏此文章 发表于3个月前 , 已有1005次阅读 共2个评论 6人收藏此文章
感谢linux大鹏的《看日记学git》系列教程
Git 是一个由林纳斯·托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。
一.安装GIT
1.源码安装:
从Git官网的下载页面下载最新稳定版源代码,然后编译、安装
$ wget http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2
$ tar -xjvf git-1.7.3.5.tar.bz2
$ cd git-1.7.3.5
$ make prefix=/usr all ;# 设置Git安装目录
$ sudo make prefix=/usr install ;# 以root权限运行
2.安装包安装:
fedora 等系统
$ yum install git-core
ubuntu等系统
$ apt-get install git-core
二.设置用户名和密码
$ git config --global user.name flynewton #将用户名设为flynewton
$ git config --global user.email alicool@foxmail.com #将用户邮箱设为alicool@foxmail.com
Git的配置信息分为全局和项目两种,上面命令中带了“--global"参数就是进行全局配置,会影响本机上的每个一个Git项目。
Git也可以为每个项目设定不同的配置信息,进入Git项目所在目录,执行下面的命令:
$ git config user.name xxx#将用户名设为xxx
$ git config user.email xxx@gmail.com #将用户邮箱设为xxx@gmail.com
三.开始使用GIT
1.快速入门
$ cd hello-git/ #进入项目目录
$ git init #初始化该项目,建立一个.git隐藏目录用于保存项目目前的进展情况
$ git add . #建立快照,快照存储在临时存储空间
$ git commit #将快照中的内容写入GIT仓库,输入回车后会进入vi窗口,记录版本和开发情况等,也可以直接git commit -m "log msg"
$ git commit -a #相当于"git add ."+"git commit",但是无法加入新增的文件或文件夹
2.修改源代码后的操作
$ git diff #查看源代码和快照的区别
$ git diff --cached #查看快照和仓库的区别
$ git status #查看整体改动的信息
$ git add hello.py #告诉git我修改了hello.py文件,请检查下(GIT中无论修改还是增加新文件均使用add进行登记)
$ git commit #提交到git
$ git log #查看日志
$ git reset --soft HEAD #只回退commit的信息,但index file(就是临时存储区域)和修改的代码仍然在
$ git reset --hard HEAD #不仅回退commit的信息,代码也恢复到修改前的版本
$ git reset --mixed HEAD #回退commit和index file的信息,保留代码的修改
$ git reset HEAD #默认情况等同于mixed
$ git reset -- a.py #从index file中删除一个已经登记的文件
3.分支管理
$ git branch branch-a #创建branch-a分支
$ git branch #查看所有分支,其中带*的返回结果为当前分支
$ git checkout branch-a #切换到branch-a分支
====================================================
修改分支代码
$ git commit hello.py #提交到分支
====================================================
$ git checkout master #切换到主干
====================================================
修改主干代码
$ git commit hello.py #提交到主干
====================================================
$ git checkout branch-a #切换到branch-a分支
$ git merge branch-a #将分支合并到主干(如果有冲突会提示冲突的地方,修改后再合并)
$ git branch -d branch-a #分支内容合并到主干后删除branch-a分支
$ git branch -D branch-a #不论分支内容是否合并到主干,均删除branch-a分支
$ sudo apt-get install gitk #安装gitk,gitk可以在图形界面查看所有分支及改动信息
$ gitk #启动gitk查看分支及改动信息
$ git clone /home/flynewton/hello-git hello-git2 #克隆hello-git到hello-git2中
$ cd hello-git2
==========================================================
$ 修改hello-git2中的源代码并提交
==========================================================
$ 创建分支branch-b,并修改分支中的源码并提交
==========================================================
$ 进入hello-git文件夹中
==========================================================
$ git fetch /home/flynewton/hello-git2 master:hello2-works #将hello-git2主干代码作为本地的新分支hello2-works
$ git -p master..hello2-works #查看本地主干和hello2-works分支的差异
==========================================================
$ git pull /home/flynewton/hello-git2 master #合并hello-git2的主干到本地分支
$ git pull /home/flynewton/hello-git2 branch-b #合并hello-git2的分支到本地分支
4.历史记录查询
$ git log #查询历史记录,返回commit 59e67766668f315a3b84beaca709777cdb6c8f09这样的标记码
$ git show 59e67766668f315a3b84beaca709777cdb6c8f09 #查看该commit的记录
$ git tag V1 59e677 #标记为V1
$ git show V1 #查看V1记录
$ git branch branch-c V1 #建立基于V1的分支
$ git log V1..V3 #显示V1至V3的历史记录
$ git log branch-a..branch-b #显示在branch-b但不在branch-a中的历史记录