git的一些命令
因为项目的原因,大家把项目托管到git上,然后我不会,队友就传了一个廖雪峰的git教程,讲的很详细,不会用git的同学,可以在http://pan.baidu.com/s/1pKizolP上下载,这是我传到百度云的,当然网上其他的地方还有很多。今天主要是想记录下,git的一些常用命令。纪念我花了1天多的时间看完并且熟练操作,共勉。
0、设置帐号密码
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
1、初始化一个Git仓库,使用 git init 命令。
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
2、添加文件到Git仓库,分两步:
• 第一步,使用命令 git add ,注意,可反复多次使用,添加多个文件;
• 第二步,使用命令 git commit ,完成。
$ git add readme.txt
$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
3、git status 告诉你是否有文件被修改过,用 git diff 可以查看修改内容。
$ git status
$ git diff readme.txt
4、git log 命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline 参数
$ git log
$ git log --pretty=online
5、在Git中,用HEAD表示当前版本,也就是最新的提交“ 3628164...882e1e0”(注意我的提交ID和你的肯定不一一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100 个版本写100个^比较容易数不过来,所以写成HEAD~100
$git reset --hard HEAD^
6、cat查看当前版本
$ cat readme.txt
7、Git提供了一个命令 git reflog 用来记录你的每一次命令:
$ git reflog
8、Git允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id 。
穿梭前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。
工作区有一个隐藏目录“.git”,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
9、git checkout -- file 可以丢弃工作区的修改
$ git checkout -- readme.txt
命令 git checkout -- readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存
区后的状态。
总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。
10、当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两
步,第一步用命令 git reset HEAD file ,就回到了想丢弃工作区的修改,再用命令git checkout -- file,丢弃工作区的修改
如:$git reset HEAD readme.txt
$git checkout -- readme.txt
11、直接在文件管理器中把没用的文件删了,或者用 rm 命令删
$ rm test.txt
12、命令 git rm 用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
13、创建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
14、在本地的learngit仓库下运行命令:
$ git remote add origin git@github.com:designerbaby/learngit.git
15、把本地库的所有内容推送到远程库上:
$ git push -u origin master
16、Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
17、查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branchname,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
18、命令git tag name用于新建一个标签,默认为HEAD,也可以指定一个commit id;
-a tagname -m "blablabla..."可以指定标签信息;
-s tagname -m "blablabla..."可以用PGP签名标签;
命令git tag可以查看所有标签;
19、命令git push origin tagname可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d tagname可以删除一个本地标签;
命令git push origin :refs/tags/tagname可以删除一个远程标签。
20、搭建Git服务器非常简单,通常10分钟即可完成;
要方便管理公钥,用Gitosis;
要像SVN那样变态地控制权限,用Gitolite。
只是简单列出了一些命令,需要详细知道怎么操作 ,建议还是去下载廖雪峰的git教程去看。
git的一些命令的更多相关文章
- GIT 版本控制常用命令学习汇总
GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...
- git的一些命令行
以下代码均在命令行中执行:在目标文件夹目录下: 1.初始化一个Git仓库,使用git init命令. 2.添加文件到Git仓库,分两步: 第一步,使用命令git add <file>,注意 ...
- git log 常用命令及技巧
git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...
- Git基本常用命令
Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...
- git workflow常用命令
git init git status git add readme.txt git add --all Adds all new or modified files git comm ...
- 关于Git的stash命令
add 添加新文件到 Git 代码仓库的索引中 $ git add filename mv 移动或重命名文件 $ git mv old-filename new-filename rm 从工作目录和 ...
- GIt/Github常用命令
1)git init:初始化本地仓库 2)创建文件:touch read.txt 3)当操作本地的文件时,使用常用的命令,如(mv,ls..)就可以操作,当操作暂存区的文件时需要在命令前家git,并且 ...
- git链接GitHub命令及基本操作
Git是一款不错的代码管理工具,下面引用百科的一段话: Git是用于Linux内核开发的版本控制工具.与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服 ...
- Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下G ...
随机推荐
- Mellanox vma
1,Mellanox offical vma Installation guide personal reading summarize VMA是一个消息加速器messaging accelerato ...
- Django 1.6 最佳实践: 如何设置和使用 Log(转)
原文: http://www.weiguda.com/blog/37/ 任何参与过高要求的大型项目的编程人员都明白设置适当的log等级, 创建不同的logger, 记录重要事件的重要性. 正确的设置和 ...
- <一道题>求1 + 2! + 3! + .... + N!
一道小题,╮(╯▽╰)╭ #include <stdio.h> /*jie cheng * * 1 + 2! + 3! + ... + N! * * */ int factorial(in ...
- 理解js闭包(一)
@(编程) 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. ...
- HDU 5437 Alisha’s Party (优先队列模拟)
题意:邀请k个朋友,每个朋友带有礼物价值不一,m次开门,每次开门让一定人数p(如果门外人数少于p,全都进去)进来,当最后所有人都到了还会再开一次门,让还没进来的人进来,每次都是礼物价值高的人先进.最后 ...
- JAVA 开发实例 一 移动的小球
package com.java.move; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; i ...
- C# ASP.NET Webservice调用外部exe无效的解决方法
最近用asp.net做webservice,其中有个功能是调用执行外部的exe(类似cmd中执行),但执行Process.Start之后就没有结果,同样代码在winform下正常,折腾两天终于找到解决 ...
- maven中解决javax.servlet.jsp.PageContext cannot be resolved to a type
在eclipse环境下用maven出现:javax.servlet.jsp.PageContext cannot be resolved to a type. 这是由于没有引入jsp-api引发的问题 ...
- 怎样对ListView的项进行排序
当您使用资源浏览器查看文件时,您能够随心所欲的按名称.大小.类型及改动日期不同的列对文件进行大小排序..Net提供的ListView组件没有直接提供这样的功能,但要实现并不难. ListView. ...
- MariaDB5.5.32 绿色版下载安装一条龙
1.下载地址: http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/mariadb-5.5.32/win32-packages/mariadb-5.5.32 ...