初始Git常用相关命令

初始Git常用相关命令

下载Git
国内镜像
“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com" 
  1. 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录

    $ mkdir learngit
    $ cd learngit
    $ pwd //pwd命令用于显示当前目录

  2. git init //把这个目录变成Git可以管理的仓库(当前目录下多了一个.git的目录,默认是隐藏)

  3. 假设我们现在有一个readme.txt(一定要放在git仓库目录下learngit)文件并有相应的内容

  • git add 用命令 告诉Git,把文件添加到仓库 eg:git add readme.txt
  • git commit用命令告诉Git,把文件提交到仓库:eg:git commit -m "wrote a readme file"(-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。)
  1. git status命令看看结果
  2. git diff这个命令看看修改的结果 eg:git diff readme.txt
  3. git log命令查看修改的历史纪录,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline 参数。eg:git log --pretty=oneline,在这里你看到的一大串类似3628164...882e1e0的是commit id(版本号)
  4. git reset命令回退版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个eg:git reset --hard HEAD^
  • $ git reset --hard 3628164指定回到未来的某个版本3628164这个是不全的commit ID。会自己帮我们找
  1. git reflog用来记录你的每一次命令
  2. git checkout -- file可以丢弃工作区的修改(工作区指还未add前,add之后,commit之前叫暂存区)。eg:git checkout -- readme.txt
  • . 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

  • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

  1. 撤销修改git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:eg:git reset HEAD readme.txt
  2. 删除文件 rm test.txt
    这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:(git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”)
  • 现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit.eg:git rm test.txt 然后 git commit -m "remove test.txt"文件就从版本库中被删除了
  • 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本git checkout -- test.txt

  1. 创建SSH Keyssh-keygen -t rsa -C "youremail@example.com"然后一路回车,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,
  2. 在GitHub上新建这个learngit仓库。git remote add origin git@github.com:HappyXiaoTian/learngit.git添加后,远程库的名字就是origin
  3. git push命令,把本地库的内容推送到远程,实际上是把当前分支master推送到远程.eg:git push -u origin master
  4. git push origin master只要本地作了提交,就可以通过以上命令
  5. 从远程库克隆登陆GitHub,创建一个新的仓库,名字叫gitskills。git clone克隆一个本地库eg:git clone git@github.com:HappyXiaoTian/gitskills.git

分支

  1. git checkout -b dev我们创建dev分支,然后切换到dev分支。相当于如下两行命令:
    • $ git branch dev
    • $ git checkout dev
  1. git branch命令查看当前分支
  2. git merge命令用于合并指定分支到当前分支eg:git merge dev(假设当前分支是master,就是将dev分支合并到master分支)
  3. git branch -d dev删除dev分支
  4. git merge --no-ff -m "merge with no-ff" dev准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward
  5. git stash把当前工作现场“储藏”起来,等以后恢复现场后继续工作
  6. git stash list命令看看刚才的工作现场存到哪去了
  7. Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
  • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

  • 另一种方式是用git stash pop,恢复的同时把stash内容也删了:

  1. git branch -d feature-vulcanfeature-vulcan分支还是必须就地销毁git branch -D feature-vulcan强行删除
  2. git push origin master推送master分支

标签

  1. git tag <name>就可以打一个新标签eg:git tag v1.0
  2. git tag查看所有标签
  3. git log --pretty=oneline --abbrev-commit找到历史提交的commit id
  4. git tag v0.9 6224937对指定commit id是6224937打上标签
  5. git tag -a v0.1 -m "version 0.1 released" 3628164创建带有说明的标签,用-a指定标签名,-m指定说明文字
  6. git show <tagname>可以看到说明文字eg:git show v0.1
  7. git tag -s v0.2 -m "signed version 0.2 released" fec145a签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错
  8. git tag -d v0.1标签打错了,删除
  9. git push origin <tagname>推送某个标签到远程eg:git push origin v1.0git push origin --tags一次性推送全部尚未推送到远程的本地标签
  10. git push origin :refs/tags/<tagname>可以删除一个远程标签(先删除本地的:git tag -d v0.9) eg:git push origin :refs/tags/v0.9
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容