因为项目的原因,大家把项目托管到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. DataGrid Column Group (合并表头)

    <thead> <tr> <th colspan=">swjg</th> <th colspan=">swbm</ ...

  2. [iOS微博项目 - 3.3] - 封装网络请求

    github: https://github.com/hellovoidworld/HVWWeibo   A.封装网络请求 1.需求 为了避免代码冗余和对于AFN框架的多处使用导致耦合性太强,所以把网 ...

  3. oradmin相关用法

    [转]oradmin相关用法 创建例程: -NEW -SID sid | -SRVC 服务 [-INTPWD 口令] [-MAXUSERS 数量] [-STARTMODE a|m] [-PFILE 文 ...

  4. HDU3874Necklace(树状数组+离线操作)

    此题的大意思说有一串珠子,每个珠子都有自己的欣赏值value,现在给你一串珠子每个的欣赏值,并给出一些询问,查询某个区间内部总欣赏值是多少,但是有一个约定就是如果这个区间内部有两个珠子的欣赏值是一样的 ...

  5. HDU 5702 Solving Order (水题,排序)

    题意:给定几种不同的颜色和它的权值,按它的权值排序. 析:排序. 代码如下: #include <cstdio> #include <string> #include < ...

  6. 用vagrant搭建一个自己的lnmp环境(一)

    用vagrant搭建自己的lnmp环境 1.工具: a.vagrant b.virtual box c.linux服务器box(此处我使用centos 7.0) 2.安装完vagrant和virtua ...

  7. JavaScript一些不常用的写法

    如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句“原来还可以这样写”呢?下面列出一些在JavaScrip ...

  8. 关于刘冬大侠Spring.NET系列学习笔记3的一点勘正

    诚如他第22楼“只因渴求等待”提出的疑问一样,他的下面那一段代码是存在一点点问题的, XElement root = XElement.Load(fileName); var objects = fr ...

  9. js获取当前页面的url信息方法

    例如网址:http://localhost:12085/My/OrderM.aspx 设置或获取对象指定的文件名或路径. alert(window.location.pathname) 输出结果:/M ...

  10. mvc web api 保存多个实体类的方法

    先说一下我的业务需求,挺简单的. 就是在设计角色和权限的页面中,需要一个角色对应多条权限记录,那么在保存的时候,我的处理方式是,先删除该角色的所有权限,然后再保存所有的权限. 这样的话问题就来了,用默 ...