码迷,mamicode.com
首页 > 其他好文 > 详细

git 常用命令

时间:2016-08-04 21:39:16      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

创建版本库

mkdir:创建文件

pwd:显示当前目录

ls -ah:查看当前文件子目录的内容

git init:把当前目录变成Git可以管理的仓库;

git add:告诉Git,把文件添加到仓库;可反复多次使用,添加多个文件。

git commit -m "":m后面输入的是本次提交的说明

技术分享:1个文件被修改,2行语句新插入。

时光机穿梭

git status:命令可以让我们时刻掌握仓库当前的状态

技术分享:readme.txt被修改过了,但还没有准备提交的修改。

git diff:如果git status告诉你有文件被修改过,用git diff可以查看修改内容。git diff HEAD --readme.txt:查看最新版本的区别。

技术分享:可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。

版本回退

git log:命令显示从最近到最远的提交日志,如果嫌输出信息太多,可以输:git log --pretty=oneline

 技术分享

git reset --hard HEAD^:回退到上一版本、上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。(回到过去)

git reset --hard 3628164:举例,(回到未来)

git reflog --你回退到了某个版本,关掉了电脑,第二天早上就后悔了,找不到新版本的commit id,用这个命令。

撤销修改

(可以用git status提示自己)

git checkout -- file:场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时

git reset HEAD file:场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步:第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

 

删除文件

rm命令,删除文件后两个选择

1.一是确实要从版本库中删除该文件,那就用命令git rm test.txt删掉,并且git commit

2.  另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:$ git checkout -- test.txt

 

远程仓库 

1.添加远程库

①:GitHub上创建一个learngit仓库(例子),我们根据GitHub的提示,在本地的learngit仓库下运行命令:

$ git remote add origin git@github.com:muyunyun/learngit.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

②:$ git push -u origin master(

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

③:从现在起,只要本地作了提交,就可以通过命令

$ git push origin master

 

2.从远程库克隆

假如要gitskills的仓库克隆到本地:

$ git clone git@github.com:muyunyun/gitskills.git

GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址,但通过ssh支持的原生git协议速度最快。

 

分支管理

创建与合并分支:

git branch:查看分支;

git branch <name>:创建分支;

git checkout <name>:切换分支;

git checkout -b <name>:创建+切换分支;

git merge <name>:合并某分支到当前分支;

git branch -d <name>:删除分支

 

分支管理策略:

git merge --no-ff -m "merge with no-ff" <name>:从分支历史上可以看出分支信息

Bug分支:

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

多人协作:

  • 查看远程库信息,使用git remote -v

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

标签管理

  • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

  • git tag -a <tagname> -m "blablabla..."可以指定标签信息;

  • git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

  • 命令git tag可以查看所有标签。

 

推荐下廖雪峰老师的Git教程。

git 常用命令

标签:

原文地址:http://www.cnblogs.com/MuYunyun/p/5722658.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!