Git版本控制教程 - Git本地仓库
2015-03-24 11:38
232 查看
http://blog.csdn.net/pipisorry/article/details/44588351github上注册用户到https://github.com/注册用户
GitBash中输入:$ cd 'E:\mine\pythonworkspace'$ git init当前目录下多了一个
commit comments]
Note:在github上创建完成repository后就是这个提示。皮皮Blog
这样,Git会适当地显示不同的颜色,比如
当你敲入命令:
实际上Git执行的是:
配置一个
这样,用
甚至还有人丧心病狂地把
配置Git的时候,加上
别名就在
配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置。设置git启动时的默认工作目录windows下找到git安装目录下 e.g. D:\Git\etc\profile文件,在最前面加上默认工作目录,如:cd E:/mine/python_workspaceps:git blame用法要查看文件的每个部分是谁修改的, 那么
git blame 就是不二选择. 只要运行'git blame [filename]', 你就会得到整个文件的每一行的详细修改信息:包括SHA串,日期和作者Note :Git采用SHA1做为hash签名算法, 在本书中,作者为了表达方便,常常使用SHA来代指SHA1. 如果没有特别说明, 本书中的SHA就是SHA1的代称e.g.git blame test.py如果文件被修改了(reverted),或是编译(build)失败了; 这个命令就可以大展身手了.你也可以用"-L"参数在命令(blame)中指定开始和结束行:
[http://git-scm.com/docs/git-blame][查找问题的利器 - Git Blame]
Windows上安装Git
Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序。msysgit是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”!快速启动Git并自动切换到指定的文文件夹命令行工具Git Bash还集成到了Windows的资源管理器中,在文件夹上右键,可以点击Git Bash Here和Git GUI Here快速启动Git并自动切换到指定的文件夹.设置git的user name和email配置命令$ git config --global user.name "pipilove"
$ git config --global user.email "pipisorry@126.com"因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。(注册过的)注意
git config命令的
--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。查看git配置git config --list皮皮Blog
创建版本库-初始化git代码库
通过git init命令把某个目录(比如我的是E:\mine\pythonworkspace)变成Git可以管理的仓库
GitBash中输入:$ cd 'E:\mine\pythonworkspace'$ git init当前目录下多了一个
.git的目录,这个目录是Git来跟踪管理版本库的Note:git很干净:git不会像svn一样在每个目录下面都建立一个.svn目录,而只是在代码根目录下建立一个.git目录。所以相应的,当你执行git status的时候,显示出来的是整个工程的代码修改,而不是像svn一样显示当前目录下的修改。git只建立一个.git目录的好处是,除了根目录下你需要注意这里比原先多了一个文件夹外,你可以很放心地认为“代码就像它看起来的那样”,你把它copy到任意一个地方都可以。而svn则不行,svn的代码目录是不能够拷贝到其他svn代码库中的,因为svn的索引会冲突。把文件添加到仓库1. $ git add readme.txt #git add . #add all filesNote:如果不add到暂存区,那就不会加入到commit中。2. workspace中某个文件夹右键 > git add all files nowgit提交代码文件时怎么过滤掉某个文件夹,[b]不提交Git工作目录中某些文件[/b]1. 在Git工作区的根目录下创建一个特殊的
.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。不需要从头写
.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore2. 工程目录下找到.git/info/exclude,把要排除的文件写进去e.g. # git ls-files --others --exclude-from=.git/info/exclude# Lines that start with '#' are comments.# For a project mostly in C, the following would be a good set of# exclude patterns (uncomment them if you want to use them):# *.[oa]# *~.idea/datasets/test/test27/launcher0launcher7133709813684183199semanticpy-master.zipNote:最后一步就是把
.gitignore也提交到Git,就完成了!检验
.gitignore的标准是
git status命令是不是说“working directory clean”。使用Windows,如果你在资源管理器里新建一个
.gitignore文件,提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为
.gitignore了。[git 创建 .gitignore 文件过滤规则及注意事项][Git 过滤文件,控制上传]
git status命令查看结果
{绿色是已经add到暂存区stage中的(右键add进去的), 红色是在工作区workspace还没add到stage中的}
git diff查看difference将暂存区stage中某些文件删除,不提交把文件提交到仓库
$ git commit -m "wrote a readme file"
Note:
1. -m后面输入的是本次提交的说明,可以输入任意内容2. 提交信息内容的建议:写明为什么,不要写做了什么Anyone can see WHAT you did just by looking at the code. But the code can never tell someone WHY you did it.using the word “should” can help frame things.[Writing Great Git Commit Messages][Preemptive
commit comments]
commit可以一次提交很多文件,所以你可以多次
add不同的文件:
$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files."{暂存区中的都提交了}git status变化:忽略指定文件有些文件是我们并不想加入也无需被添加到 Git 管理中,同时也不希望他出现在未跟踪列表中。例如在编译过程中生成的 o 文件。“.gitignore” 文件可以达到这个效果。一、局部和全局设置 .gitignore有全局和局部两种:1. 全局 通过修改全局配置 gitconfig 中的
excludesfile 指定全局忽略文件。设置方法:$ git config --global core.excludesfile ~/.gitignore 修改~/.gitignore 这个文件将作用于所有 git 项目,并且作用于项目实例中的所有被跟踪的目录。比如说我们可以在该文件中添加*.o 来忽略所有 .o 文件。2. 局部 忽略文件默认为当前目录的.gitignore ,但它只作用于当前目录下。上面说到,在全局的 .gitignore 文件中添加 *.o 会忽略所有目录下产生的.o 文件,但在当前目录下的 .gitignore 中添加 *.o 却只能忽略当前目录下的 .o 文件。[git-忽略指定文件]总结在本地创建repository版本管理的步骤如下
git init git add README.md git commit -m "first commit"
Note:在github上创建完成repository后就是这个提示。皮皮Blog
工作区和暂存区
工作区(Working Directory):就是你在电脑里能看到的目录,比如E:\mine\pythonworkspace文件夹版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支
master,以及指向
master的一个指针叫
HEAD。把文件往Git版本库里添加的时候,是分两步执行的:第一步是用
git add把文件添加进去,实际上就是把文件修改添加到暂存区(stage);第二步是用
git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支(master)。git add两个文件后,暂存区的状态就变成这样了:所以,
git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行
git commit就可以一次性把暂存区的所有修改提交到分支。一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。现在版本库变成了这样,暂存区就没有任何内容了:git中代码的三种状态:unstaged, staged 和 committedunstaged表示该代码尚未开发完成,staged表示代码开发完成了,准备提交但是尚未提交,committed自然就是提交过的了。让代码从unstaged变成staged,要通过命令git add <files>和git rm <files>让代码从staged变成committed,自然要使用命令git commit[http://nvie.com/posts/a-successful-git-branching-model/]皮皮Blog
自定义Git
在安装Git中,我们已经配置了user.name和
user.email,实际上,Git还有很多可配置项。让Git显示颜色
$ git config --global color.ui true
这样,Git会适当地显示不同的颜色,比如
git status命令,文件名就会标上颜色。配置别名
$ git config --global alias.st status
$ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch以后提交就可以简写成:
$ git ci -m "bala bala bala..."
--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。在撤销修改中,我们知道,命令
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。既然是一个unstage操作,就可以配置一个
unstage别名:
$ git config --global alias.unstage 'reset HEAD'
当你敲入命令:
$ git unstage test.py
实际上Git执行的是:
$ git reset HEAD test.py
配置一个
git last,让其显示最后一次提交信息:
$ git config --global alias.last 'log -1'
这样,用
git last就能显示最近一次的提交:
$ git last
commit adca45d317e6d8a4b23f9811c3d7b7f0f180bfe2
Merge: bd6ae48 291bea8
Author: Michael Liao <askxuefeng@gmail.com>
Date: Thu Aug 22 22:49:22 2013 +0800 merge & fix hello.py
甚至还有人丧心病狂地把
lg配置成了:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"配置文件
配置Git的时候,加上
--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。每个仓库的Git配置文件都放在
.git/config文件中:
$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = git@github.com:michaelliao/learngit.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [alias] last = log -1
别名就在
[alias]后面,要删除别名,直接把对应的行删掉即可。而当前用户的Git配置文件放在用户主目录下的一个隐藏文件
.gitconfig中:
$ cat .gitconfig [alias] co = checkout ci = commit br = branch st = status [user] name = Your Name email = your@email.com
配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置。设置git启动时的默认工作目录windows下找到git安装目录下 e.g. D:\Git\etc\profile文件,在最前面加上默认工作目录,如:cd E:/mine/python_workspaceps:git blame用法要查看文件的每个部分是谁修改的, 那么
git blame 就是不二选择. 只要运行'git blame [filename]', 你就会得到整个文件的每一行的详细修改信息:包括SHA串,日期和作者Note :Git采用SHA1做为hash签名算法, 在本书中,作者为了表达方便,常常使用SHA来代指SHA1. 如果没有特别说明, 本书中的SHA就是SHA1的代称e.g.git blame test.py如果文件被修改了(reverted),或是编译(build)失败了; 这个命令就可以大展身手了.你也可以用"-L"参数在命令(blame)中指定开始和结束行:
$>git blame -L 160,+10 test.py
[http://git-scm.com/docs/git-blame][查找问题的利器 - Git Blame]
pycharm中进行版本控制
from:/article/1323258.htmlref:git Documentationgit(1) Manual PageGit学习笔记http://www.liaoxuefeng.com/http://gitref.org/git入门经典Git-Tutorial-ebook+github+tutorialgit - 简明指南Git 10 周年访谈:Linus 讲述背后故事 - 推荐阅读git 问题相关文章推荐
- Git版本控制教程 - Git远程仓库
- 最全Pycharm教程(39)——Pycharm版本控制之本地Git用法
- 版本控制git 下载,安装,创建代码仓库,提交本地代码
- 码云(gitosc)(含git安装教程)之免费私有的版本控制仓库(小白篇)
- 最全Pycharm教程(39)——Pycharm版本控制之本地Git用法
- Git简明教程--4.文件添加和版本提交到本地仓库
- Git版本控制:Git本地仓库
- Eclipse关联GitHub实现版本控制[一般下载的eclipse里都自带git插件,然后设置本地仓库和远程仓库就可以]
- Git使用手册/Git教程:git fetch 将远程仓库的分支及分支最新版本代码拉取到本地
- OS(关于版本控制)使用git 创建远程仓库-熟知这些命令行,带你装逼带你飞!
- git使用教程一 本地仓库操作
- Git版本控制教程 - Git查阅、撤销修改和版本回退
- ios版本控制之git本地
- 版本控制(5)--Git简介和仓库创建
- 删除本地git版本库中受版本控制的文件
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
- Git学习第二天:版本控制与远程仓库
- Git 版本控制简明教程 - 连环画一样的清晰简单
- 用gitshell将线上的版本仓库下载到本地,并随时跟踪项目
- 版本控制工具 GIT入门教程