Git使用笔记01
2016-03-31 20:28
190 查看
本文主要的参考文章链接如下所示:
Pro Git(中文版)
Git教程
Git使用教程
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样的话工作的时候就不需要联网,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改。
【开始】菜单->【所有程序】->【Git】->【Git Bash】,会弹出如下操作界面:
![](https://img-blog.csdn.net/20160331194934331)
Git的设置信息被存放在用户本地目录的.gitconfig文档里。虽然可以直接编辑配置文件,但在这里我们使用config命令。
Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
可以为Git命令设定别名(如把「checkout」缩略为「co」,然后就使用「co」来执行命令)
如果在Windows使用命令行(Git Bash), 含非ASCII字符的文件名不能正常显示。
让Git以彩色显示。
在某路径下新建版本库所需的目录,然后通过
执行Git初始化命令,可以把这个目录变成Git可以管理的仓库。
此时git_test目录下会多出.git的目录,这个目录是Git用来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件
使用命令
![](https://img-blog.csdn.net/20160331195422583)
使用空格分割可以指定多个文件,使用点号
使用命令
![](https://img-blog.csdn.net/20160331195650021)
通过命令
![](https://img-blog.csdn.net/20160331200250961)
修改「readme.txt」文件的内容(如添加一行“222222”内容)。
再次通过命令
![](https://img-blog.csdn.net/20160331200453134)
使用命令
![](https://img-blog.csdn.net/20160331200703353)
可以看出「readme.txt」文件的内容添加了一行“222222”的内容。
知道对「readme.txt」文件做了什么样的修改后,就可以放心的提交到仓库,提交修改和提交文件是相同的操作。
![](https://img-blog.csdn.net/20160331200834385)
使用
![](https://img-blog.csdn.net/20160331201058589)
提交这次的修改。
![](https://img-blog.csdn.net/20160331201350184)
使用命令
![](https://img-blog.csdn.net/20160331201514153)
如果想要回退到前两个版本,使用
再次查看日志记录,此时已经没有后两次操作的记录。
![](https://img-blog.csdn.net/20160331201620544)
如果又想回退到最新的版本,使用命令
![](https://img-blog.csdn.net/20160331201826733)
使用命令
![](https://img-blog.csdn.net/20160331201926811)
在未提交之前,如果发现添加444444内容有误,所以得马上恢复以前的版本,现在可以有如下几种方法:
如果知道需要删掉哪些内容的话,直接手动更改去掉那些内容,然后add添加到暂存区,最后commit提交。
可以按前述的方法直接恢复到某个版本。
如果不想使用上面的两种方法,而想直接想使用撤销命令该如何操作呢?首先查看状态。
![](https://img-blog.csdn.net/20160331202036093)
可以发现,Git会告诉你
命令
文件被修改后,还没有放到暂存区(即没有使用
文件已经放入暂存区,接着又作了修改,撤销修改就只是回到添加到暂存区后的状态。
手动删除名为「new_one.txt」的文件,然后查看查看的状态。
![](https://img-blog.csdn.net/20160331202143124)
使用命令
![](https://img-blog.csdn.net/20160331202218593)
使用命令
![](https://img-blog.csdn.net/20160331202332344)
转到某个用于存放项目的目录(如E:\)。
使用命令
![](https://img-blog.csdn.net/20160331202454110)
转到克隆所得的仓库目录,使用命令
此命令会到远程仓库中拉取所有本地仓库中还没有的数据。运行完成后,就可以在本地访问该远程仓库中的所有分支。
如果是克隆了一个仓库,此命令会自动将远程仓库归于
使用命令
如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用
实际上,默认情况下
使用
只有拥有所克隆的服务器上的写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新拉取到本地,合并到自己的项目中,然后才可以再次推送。
![](https://img-blog.csdn.net/20160331202624486)
![](https://img-blog.csdn.net/20160331202654001)
对远程仓库的重命名,也会使对应的分支名称发生变化(例如原来的origin/master分支现在变成myori/master分支)。
碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库。
使用
Pro Git(中文版)
Git教程
Git使用教程
简介与说明
Git是一个分布式版本管理系统,是为了更好地管理Linux内核开发而创立的。Git可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复原到以前的状态,也可以显示编辑前后的内容差异。Git与SVN的区别
SVN是集中式版本控制系统,版本库是集中放在中央服务器的。而工作的时候,用的都是自己的电脑,所以首先要从中央服务器那里得到最新的版本。工作完成后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快;如果在互联网,网速慢的话就比较恼火。Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样的话工作的时候就不需要联网,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改。
Win7环境下安装与配置
联网到Git官网下载页面下载Git安装包,然后双击安装。【开始】菜单->【所有程序】->【Git】->【Git Bash】,会弹出如下操作界面:
Git的设置信息被存放在用户本地目录的.gitconfig文档里。虽然可以直接编辑配置文件,但在这里我们使用config命令。
Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
git config --global user.name "<用户名>" git config --global user.email "<电子邮件>"
--global参数表示这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定的不同的用户名和邮箱。
可以为Git命令设定别名(如把「checkout」缩略为「co」,然后就使用「co」来执行命令)
git config --global alias.co checkout
如果在Windows使用命令行(Git Bash), 含非ASCII字符的文件名不能正常显示。
git config --global core.quotepath off
让Git以彩色显示。
git config --global color.ui auto
本地仓库操作
创建版本库
版本库(又名仓库,英文名repository),可以简单的理解为一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除等,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件还原。在某路径下新建版本库所需的目录,然后通过
cd命令转到该新建目录(示例目录为E:\git_test)
执行Git初始化命令,可以把这个目录变成Git可以管理的仓库。
git init
此时git_test目录下会多出.git的目录,这个目录是Git用来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件
ls -a
添加文件到版本库
在版本库git_test目录下新建一个名为「readme.txt」的文件,写入“111111”作为文件内容。使用命令
git add <文件名>将文件添加到暂存区(索引区)。
使用空格分割可以指定多个文件,使用点号
.可以指定所有文件。
使用命令
git commit -m <文件名>告诉Git,把所有改动提交到本地的版本库。
通过命令
git status来查看是否还有文件未提交。
修改「readme.txt」文件的内容(如添加一行“222222”内容)。
再次通过命令
git status来查看是否还有文件未提交。
使用命令
git diff <文件名>查看「readme.txt」文件到底改了什么内容。
可以看出「readme.txt」文件的内容添加了一行“222222”的内容。
知道对「readme.txt」文件做了什么样的修改后,就可以放心的提交到仓库,提交修改和提交文件是相同的操作。
使用
git log命令,可以查看仓库的操作记录。
版本回退
再次修改「readme.txt」文件的内容(如添加一行“333333”内容)。提交这次的修改。
使用命令
git log或者
git log --pretty=oneline查看仓库的操作记录。
如果想要回退到前两个版本,使用
git reset --hard HEAD~2命令。
再次查看日志记录,此时已经没有后两次操作的记录。
如果又想回退到最新的版本,使用命令
git reflog查看所有的操作记录。
使用命令
git reset --hard <版本号>回退到仓库的指定版本。
撤销修改
再次修改「readme.txt」文件的内容(如添加一行“444444”内容)。在未提交之前,如果发现添加444444内容有误,所以得马上恢复以前的版本,现在可以有如下几种方法:
如果知道需要删掉哪些内容的话,直接手动更改去掉那些内容,然后add添加到暂存区,最后commit提交。
可以按前述的方法直接恢复到某个版本。
如果不想使用上面的两种方法,而想直接想使用撤销命令该如何操作呢?首先查看状态。
可以发现,Git会告诉你
git checkout --<文件名>可以撤销工作区的修改。
命令
git checkout --<文件名>的意思就是把文件在工作区做的修改全部撤销(
--很重要,如果没有的话,那么该命令就是创建分支),这有2种情况:
文件被修改后,还没有放到暂存区(即没有使用
git add命令),使用撤销修改就回到和版本库一模一样的状态。
文件已经放入暂存区,接着又作了修改,撤销修改就只是回到添加到暂存区后的状态。
删除文件
新建名为「new_one.txt」的文件,然后提交。手动删除名为「new_one.txt」的文件,然后查看查看的状态。
使用命令
git rm <文件名>将文件从暂存区删除。
使用命令
git commit -m *提交操作。
远程仓库操作
获取远程仓库
如果想对某个开源项目出份力,可以先把该项目的Git仓库复制出来,这就需要用到git clone命令。
转到某个用于存放项目的目录(如E:\)。
使用命令
git clone <url> [自定义项目名称]克隆远程仓库。
转到克隆所得的仓库目录,使用命令
git remote -v查看当前配置有哪些远程仓库。
从远程仓库拉取数据
使用命令git fetch <remote-name>从远程仓库拉取数据到本地。
此命令会到远程仓库中拉取所有本地仓库中还没有的数据。运行完成后,就可以在本地访问该远程仓库中的所有分支。
如果是克隆了一个仓库,此命令会自动将远程仓库归于
origin名下,所以
git fetch origin会抓取从你上次克隆以来(或是上次fetch以来)别人上传到此远程仓库中的所有更新。需要记住,fetch命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好,才能手工合并。
使用命令
git pull从远程仓库拉取数据到本地。
如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用
git pull命令自动拉取数据下来,然后将远端分支自动合并到本地仓库中的当前分支。日常工作中经常这么用,既快且好。
实际上,默认情况下
git clone命令本质上就是自动创建本地的master分支用于跟踪远程仓库中的master分支(假设远程仓库确实有master分支),所以一般我们运行
git pull,目的都是要从原始克隆的远端仓库中拉取数据后,合并到工作目录中的当前分支。
推送数据到远程仓库
项目进行到某个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。使用
git push <remote-name> <branch-name>可以实现推送功能,如果要把本地的master分支推送到origin远程仓库(克隆操作会自动使用默认的master和origin名字)。
git push origin master
只有拥有所克隆的服务器上的写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新拉取到本地,合并到自己的项目中,然后才可以再次推送。
查看远程仓库信息
使用命令git remote show <remote-name>查看某个远程仓库的详细信息(比如要看所克隆的origin仓库),会给出许多默认信息。
远程仓库的删除和重命名
使用git remote rename *命令修改某个远程仓库在本地的简称。
对远程仓库的重命名,也会使对应的分支名称发生变化(例如原来的origin/master分支现在变成myori/master分支)。
碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库。
使用
git remote rm <remote-name>命令移除对应的远端仓库。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle
- 使用GIT进行源码管理――GUI客户端小结
- 使用git代替FTP部署代码到服务器的例子
- linux系统安装git及git常用命令
- 分享下自己总结的Git常用命令
- Git 常用命令速查表(图文+表格)