因为项目的原因,大家把项目托管到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的一些命令的更多相关文章

  1. GIT 版本控制常用命令学习汇总

    GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...

  2. git的一些命令行

    以下代码均在命令行中执行:在目标文件夹目录下: 1.初始化一个Git仓库,使用git init命令. 2.添加文件到Git仓库,分两步: 第一步,使用命令git add <file>,注意 ...

  3. git log 常用命令及技巧

    git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...

  4. Git基本常用命令

    Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...

  5. git workflow常用命令

    git init git status git add readme.txt git add --all         Adds all new or modified files git comm ...

  6. 关于Git的stash命令

    add 添加新文件到 Git 代码仓库的索引中 $ git add filename mv 移动或重命名文件 $ git mv old-filename new-filename rm 从工作目录和 ...

  7. GIt/Github常用命令

    1)git init:初始化本地仓库 2)创建文件:touch read.txt 3)当操作本地的文件时,使用常用的命令,如(mv,ls..)就可以操作,当操作暂存区的文件时需要在命令前家git,并且 ...

  8. git链接GitHub命令及基本操作

    Git是一款不错的代码管理工具,下面引用百科的一段话:  Git是用于Linux内核开发的版本控制工具.与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服 ...

  9. Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

    Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下G ...

随机推荐

  1. openfire 最大连接数调优

    https://community.igniterealtime.org/thread/48064#224126 https://community.igniterealtime.org/thread ...

  2. Openstack之Swift架构(Cloud Storage)

    Swift是OpenStack的子项目之一,也称为对象储存,适用于储存永久类型的静态数据,例如:虚拟机镜像文件.图片.存档备份等 复制的三个副本如何联系在一起? 让我们用一些具体场景和介绍一些组件,来 ...

  3. MYSQL数据库性能调优之五:解决慢查询--存储引擎与数据类型

    3.数据类型的影响 4.存储引擎的影响 看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎:mysql> show var ...

  4. WebRTC源码分析:音频模块结构分析

    一.概要介绍WebRTC的音频处理流程,见下图: webRTC将音频会话抽象为一个通道Channel,譬如A与B进行音频通话,则A需要建立一个Channel与B进行音频数据传输.上图中有三个Chann ...

  5. NLP初步

    [NLP初步] NLP是Natural Lanuage Process的缩写.搜索引擎可以通过关词匹配和完成很多的任务, 比如话题搜索(搜索包含律师, 法院, 控告等词的文档), 但是搜索引擎无法理解 ...

  6. -g vs -rdynamic

    [-g vs -rdynamic] -g选项与-rdynamic选项的差别:1,-g选项新添加的是调试信息(一系列.debug_xxx段),被相关调试工具,比如gdb使用,可以被strip掉. 2,- ...

  7. POJ3345

    http://poj.org/problem?id=3345 大意: 大意是说现在有n个城市来给你投票,你需要至少拿到m个城市的赞成票.想要获得第i个城市的赞成需要花费w[i],有个条件就是某些城市是 ...

  8. ELF学习--装载过程

    当我们在linux bash下执行ELF程序时,Linux系统是怎样装载和执行的呢? 1.bash进程fork出子进程 2.在bash的子进程中调用execve系统调用来执行指定的ELF. 3.exe ...

  9. mysql index的长度限制

    在InnoDB Storage Engine中单独一个列的最大的索引长度为767bytes,utf8字符集中,一个字符占3个字节,所以如果列的类型为char,那么要想在此列上建立索引,此列最多只能有2 ...

  10. Junit4单元测试

    在Eclipse中使用JUnit4进行单元测试(初级篇) 在Eclipse中使用JUnit4进行单元测试(中级篇) 在Eclipse中使用JUnit4进行单元测试(高级篇)