git 日常使用

git 日常使用

==查看隐藏文件 -ah==

  • 初始化本地仓库
$ git init
  • 添加文件到git
$ git add file //可以提交多个文件,空格隔开即可

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

  • 提交
$ git commit -m "wrote a readme file" //-m 是写提交记录的

$ git commit -m "add 2 file"
[master f738172] add 2 file
 2 files changed, 2 insertions(+)
 create mode 100644 readme1.txt
 create mode 100644 readme2.txt

  • 查看当前仓库的状态
$ git status

//修改了readme.txt文件,但是没有提交,使用该命令会看到如下结果;
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
....
上面的命令输出告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
  • 查看修改的内容
$ git diff

...
//输入该命令可以看到如下内容
diff --git a/readme.txt b/readme.txt
index 3226a48..6965b13 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,4 @@
 git is a version control system
 git is free software
+Git is a distributed version control system.
+Git is free software.

  • 查看提交记录

命令显示从最近到最远的提交日志,如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

如果查看指定数量的提交记录 git log -n 1 //看最新的一条

$ git log

...

$ git log
commit 255fc8d7c00a6ff2868cf9f34f5a9256dfc95b34 (HEAD -> master)
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:57:56 2019 +0800

    修改

commit fcc9c4a26402a8e7cdfb8e8469e1e5ba8864c964
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:51:01 2019 +0800

    修改readme.txt文件

commit f73817266d7f6155c4323dcadc3922cc3602a742
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:41:56 2019 +0800

    add 2 file

commit b1f8f7ea5b0e825734cc6643337d7f16c2e7d28a
Author: sunjianyun <sjy_mail@163.com>
Date:   Tue Jul 23 10:32:32 2019 +0800

    wroit a readme file

  • 回退到上一个版本
$ git reset --hard HEAD^

  • 回退到指定版本

如果执行 git reset --hard HEAD^ 后悔,想回退之前的版本,执行如下命令

git reset --hard 255fc8d7c00a6ff2868cf9f34f5a9256dfc95b34

//后面一长串这个值为 提交记录id ,可以不用写全,只需要写开头几位就可以了
  • 查看执行的每一条命令
& git reflog

...
255fc8d (HEAD -> master) HEAD@{0}: reset: moving to 255fc8d7c00a6ff2868cf9f34f5a9256dfc95b34
b1f8f7e HEAD@{1}: reset: moving to HEAD^
f738172 HEAD@{2}: reset: moving to HEAD^
fcc9c4a HEAD@{3}: reset: moving to HEAD^
255fc8d (HEAD -> master) HEAD@{4}: commit: 修改
fcc9c4a HEAD@{5}: commit: 修改readme.txt文件
f738172 HEAD@{6}: commit: add 2 file
b1f8f7e HEAD@{7}: commit (initial): wroit a readme file

  • 查看工作区和版本库里面最新版本的区别
$ git diff HEAD -- readme.txt

...
$ git diff HEAD -- readme.txt

diff --git a/readme.txt b/readme.txt
index e2640eb..795ec9e 100644
--- a/readme.txt
+++ b/readme.txt
@@ -8,3 +8,5 @@ Git is free software.
 jsdh
 
 添加一行呢绒
+
+sjdhd

==文件修改完成之后一定要记得 先add ,不然 commit 的时候会发现之前修改的没有提交==

  • 撤销修改
$ git checkout -- readme.txt

//命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
//一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
//一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

  • 删除文件
$ git rm readme.txt
$ git commit -m "delete readme.txt file"

==注意:从来没有被添加到版本库就被删除的文件,是无法恢复的==

  • 将本地仓库推送到远端空仓库(github 为例)
$ git remote add origin https://github.com/sunjiandev/GitTest.git

$ git push -u origin master

...

Enumerating objects: 32, done.
Counting objects: 100% (32/32), done.
Delta compression using up to 8 threads
Compressing objects: 100% (27/27), done.
Writing objects: 100% (32/32), 2.83 KiB | 1.41 MiB/s, done.
Total 32 (delta 9), reused 0 (delta 0)
remote: Resolving deltas: 100% (9/9), done.
To https://github.com/sunjiandev/GitTest.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

  • 推送本地修改到远端服务器

$ git push origin master

  • 从远程仓库clone 项目到本地
$ git clone git@github.com:sunjiandev/TestGit.git

  • 创建分支
$ git checkout -b dev
//git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
//  $ git branch dev
//  $ git checkout dev
  • 查看当前分支
$ git branch

  • 切换分支
$ git checkout master

Switched to branch 'master'
  • 合并分支

git merge命令用于合并指定分支到当前分支

$ git merge dev

  • 删除分支
$ git beanch -d dev

  • 查看分支的合并关系图
$ git log --graph

==查看分支:git branch==

==创建分支:git branch <name>==

==切换分支:git checkout <name>==

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

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

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

//查看分支的合并情况

==$ git log --graph --pretty=oneline --abbrev-commit==

  • 保存当前工作的现场,待以后恢复呼继续工作
$ git stash 
  • 恢复工作区
$ git stash apply
//但是恢复后,stash内容并不删除,你需要用git stash drop来删除

$ git stash pop
//恢复的同时把stash内容也删了
  • 查看stash 列表
$ git stash list

==你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:==

$ git stash apply stash@{0}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 创建代码库 cd到某个目录,然后创建一个Git本地代码库 $ git init cd到某个目录,将其初始化为带名字...
    cyhai阅读 495评论 0 0
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,400评论 0 7
  • 查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git sho...
    Swiftor阅读 2,093评论 0 2
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,787评论 0 8
  • 原文地址主要用到的命令: git config user.name 设置用户名 git config user....
    AFinalStone阅读 458评论 0 2