【git】15分钟学会使用Git和远程代码库
工作步骤
- 创建一个远程的空代码库
- 在本地代码库添加一个项目
- 在分支上开发新功能
- a) 保留新功能 b) 丢弃它们
- 也许,回到某个早先的时间点
- 将本地代码库推送到远程代码库
- 在另一台机器上取得远程代码库
安装Git
git clone https://github.com/git/git
在Windows上,你可以在这里下载Git的安装程序。如果你真的需要其他系统的安装程序,Mac
OS X安装文件在这里,Linux的操作指导在这里。
创建一个远程代码库
你现在可以离开BitBucket了,我们在已经有了所有那里需要的东西了。
设置Git
git config --global user.name "your_username"
git config --global user.email your_email@domain.com
创建一个本地代码库
cd ~/workspace/my_site/
在Windows上:
cd c:\workspace\my_site
我们首先需要告诉Git这个文件夹是我们需要跟踪的项目。所以我们发送这个命令来初始化一个新的本地Git代码库
git init
加载(Stage)文件
git add .
最后的“.”符号的意思是“所有文件、文件夹和子文件夹”。假如我们只想要把特定文件添加到源代码控制中去,我们可以指定它们:
git add my_file my_other_file
提交文件
git commit -m "initial commit"
就这样。现在你随时都可以回滚到这个提交状态。如果你有需要检查你现在的已加载(staged)和未加载(unstaged)文件的状态、提交等,你可以询问git的状态:
git status
创建分支
git checkout -b new_feature
或者,你可以先创建一个分支然后手动切换,就像这样:
git branch new_feature
git checkout new_feature
要看你现在项目下所有的分支,发送这个:
git branch
合并分支
git add .
git commit -m "adds my new feature"
然后你移到你的主干分支:
git checkout master
像这样合并:
git merge new_feature
丢弃分支
git add .
git commit -m "feature to be discarded"
然后,你移到主干分支:
git checkout master
现在,你的代码处于你创建分支之前的状态了。
删除一个分支
git branch -d new_feature
假如修改已经合并了,它只会删除分支。假如分支没有合并,你会得到一个错误信息。删除一个未合并的分支(通常你不想保留的修改),你需要发送一样的命令附带一个大写D。意思是“强制删除分支,无论如何我不想要它了。”:
git branch -D new_feature
回滚到之前的提交状态
git log
这会输出你的提交的历史记录,像这样:
commit ca82a6dff817ec66f44342007202690a93763949Author: your_username your_email@domain.comDate: Mon Nov 4 12:52:11 2013 -0700 changes the frontpage layout
commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7Author: your_username your_email@domain.comDate: Mon Nov 4 11:40:33 2013 -0700 adds my new feature
commit a11bef06a3f659402fe7563abf99ad00de2209e6Author: your_username your_email@domain.comDate: Mon Nov 4 10:37:28 2013 -0700 initial commit
如果你想回到“adds my new feature”这个提交,简单地用提交的ID做签出(checkout)(我通常只用到ID开头的9个字符)
git checkout 085bb3bcb
你也可以签出到一个新的分支,像这样:
git checkout -b my_previous_version 085bb3bcb
推送到远程代码库
git remote add origin https://github.com/username/web.git
git push origin master
取得远程代码库的一份本地拷贝
git clone https://github.com/username/web.git
另一方面,如果你已经在本地的项目上工作了,只是想从远程代码库上取得它最新的版本,移动到项目的根目录下,并发送:
git pull origin master
别名
git config --global alias.c 'commit -m'
这是我使用的别名列表:
git config --global alias.c 'commit -m'
git config --global alias.co 'checkout'
git config --global alias.cob 'checkout -b'
git config --global alias.br 'branch'
git config --global alias.m 'merge'
git config --global alias.a 'add .'
git config --global alias.s 'status'
git config --global alias.dbr 'branch -d'
进一步
【git】15分钟学会使用Git和远程代码库的更多相关文章
- 15分钟学会使用Git和远程代码库
git是个了不起但却复杂的源代码管理系统.它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作.让我们诚实一记吧:Git是复杂的,我们不要装作它不是.但我仍然会试图教会你用(我的)基本 ...
- 15 分钟学会使用 Git 和远程代码库
Git是个了不起但却复杂的源代码管理系统.它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作.让我们诚实一记吧:Git是复杂的,我们不要装作它不是.但我仍然会试图教会你用(我的)基本 ...
- 15分钟学会使用Git
http://blog.csdn.net/u013510614/article/details/50588446 主体思想 Git作为一个复杂的版本控制系统,命令之多,相信很多小白已经望而却步,有的尝 ...
- git命令行提交并且同步到远程代码库
远程代码库以github为例 1.打开 git bash 2.进入项目目录 cd /e/myGitProjects/test 3.提交到本地git仓库 git add -Agit commit -m ...
- 使用Git和远程代码库
git是个了不起但却复杂的源代码管理系统.它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作.让我们诚实一记吧:Git是复杂的,我们不要装作它不是.但我仍然会试图教会你用(我的)基本 ...
- git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
[git 删除本地分支] git branch -D br [git 删除远程分支] git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退 ...
- 【GIT】git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
[git 删除本地分支] git branch -D br [git 删除远程分支] git push origin :br (origin 后面有空格) git代码库回滚: 指的是将代码库某分支退 ...
- git远程代码库回滚(webstorm下)
git远程代码库回滚(webstorm下) 1. 场景 添加了一个文件[file-for-test.js]到git的控制下 进行了三次修改,并分别进行了三次commit,最后进行了一次push git ...
- 【转】git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
转载自:http://m.blog.csdn.net/blog/lihongli528628/45483463 [git 删除本地分支] git branch -D br [git 删除远程分支] g ...
随机推荐
- Delphi中inherited问题
inherited Create(AOwner); 和直接写inherited有区别吗 有区别,inherited Create是指定调用父类的Create方法,当然你也可以inherited Des ...
- 适配DirectFB到qt4.8.5(嵌入式Linux)
适配DirectFB到qt4.8.5 1.编译qt4.8.5 这部在qt官网上其实已经有较详细的说明,了解更多,请点击链接进入. 首先是配置选项,如下是我的配置选项: ./configure \ -p ...
- SQL Server 2012设置某用户对某些表的记录限制其删除操作
第一步:用sa用户进入SSMS: 第二步:在安全性---用户上面点击右键---"属性": 第三步:在选择页中选择”安全对象“,点击”搜索“,弹出添加对象页面,这里默认为特定对象不用 ...
- 06、MySQL—列类型
1.整数类型 I.有符号整型 (1) Tinyint:单字节整形,系统采用一个字节来保存的整形:一个字节 = 8位,最大能表示的数值是0-255. (2) Smallint:双字节整形,系统采用两个字 ...
- bower工具
1.安装bower npm install bower -g 2.安装软件 borwer install jquery 3.安装指定版本 borwer install jquery#1.7 4.卸载软 ...
- php对象在内存中创建于释放
<?php /** * 1.对象的创建占用内存, * 对象内存释放,析构方法就是在对象释放前运行最后的一步.可以自动释放和手动释放 * 手动释放:通过unset($p);来释放对象,在这个时候会 ...
- Java学习笔记——设计模式之八.外观模式
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 子系统: package cn.happy.design_patter ...
- Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等
目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 ...
- URL的命名和反向解析
1. 分组 url(r'^del_publisher/(\d+)', views.del_publisher), 匹配到参数,按照位置参数的方式传递给视图函数 视图函数需要定义形参接收变量 2. 命名 ...
- 简述vue中父子组件是怎样相互传递值的(基础向)
前言 首先,你需要知道vue中父组件和子组件分别指的是什么? 父组件:vue的根实例——用new Vue()构造函数创建的vue实例(实例会有一个挂载点,挂载点里的所有内容可理解为父组件的内容) ...