git常用命令

参考:廖雪峰的git教程

  • git init
    把这个目录变成Git可以管理的仓库

  • git add
    把文件添加到仓库(实际上就是把文件修改添加到暂存区)
    git add readme.txt 添加单个文件
    git add ./ 添加全部缓存文件

  • git commit -m "XXXXX"
    把文件提交到仓库,"XXXX"是本次提交的说明(际上就是把暂存区的所有内容提交到当前分支)

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

    git status

  • git diff <file>
    查看readme.txt文件具体修改了什么内容

    git diff readme.txt

  • git log
    显示从最近到最远的提交日志
    git log --pretty=oneline 减少输出信息
    git log --graph 可以看到分支合并图

  • git reset
    版本回退或把暂存区的修改回退到工作区
    在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写成HEAD~100。
    回退到上一个版本 git reset --hard HEAD^
    想要回退到某个版本号 git reset --hard 1094a(1094a为你想要回退的那个版本的commit id,版本号没必要写全,前几位就可以了,Git会自动去找)
    git reset HEAD <file> 可以把暂存区的修改撤销掉,重新放回工作区。

  • git reflog
    记录每一次命令

    回退版本

  • git checkout -- <file>
    丢弃工作区的修改

    git checkout -- readme.txt

    撤销修改

  • git rm <file>
    删除一个文件
    先手动删除文件或者用rm命令删,然后使用git rm <file>和git add<file>(效果是一样的),并且git commit。
    另一种情况是删错了,因为版本库里还有,所以可以通过$ git checkout -- test.txt,把误删的文件恢复到最新版本。
    PS:从来没有被添加到版本库就被删除的文件,是无法恢复的!

  • git remote add origin <address>
    关联一个远程库

  • git push
    推送
    git push origin master 推送master分支的所有内容
    git push -u origin master 第一次推送(加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来)

  • git remote -v
    查看远程库信息
    git remote -v 显示更详细的信息

  • git remote rm <name>
    删除远程库(根据名字删除)
    比如:git remote rm origin

  • git clone <address>
    克隆一个本地库


分支模块
  • git branch
    查看分支(当前分支前面会标一个*号)
  • git branch <name>
    创建分支
  • git checkout <name> 或者 git switch <name>
    切换分支
  • git checkout -b <name> 或者 git switch -c <name>
    创建+切换分支
    git checkout -b dev origin/dev 创建远程origin的dev分支到本地
  • git merge <name>
    合并某分支到当前分支
    git merge --no-ff -m "XXXX" <name> 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史能看到分支(因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去)
  • git branch -d <name>
    删除分支
    git branch -D <name> 丢弃一个没有被合并过的分支,强行删除
  • git stash
    把当前工作现场“储藏”起来(当手头工作还没有完成时)
    git stash list 查看
    恢复方法:1. git stash apply恢复,但是恢复后,stash内容并不删除,需要用git stash drop来删除
    2. git stash pop,恢复的同时把stash内容也删了
    git stash apply stash@{0} 恢复指定的stash
  • git cherry-pick <commit>
    把bug提交的修改“复制”到当前分支(即在master分支上修复的bug,想要合并到当前dev分支)
    bug对应的commit
  • git pull
    从远程抓取分支
    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
标签模块

tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

  • git tag
    查看所有标签
  • git tag <name>
    打一个新标签
    git tag <name> <commit> 给历史提交打上标签
    PS:标签不是按时间顺序列出,而是按字母排序的
    git tag -a <name> -m "XXXX" <commit> 创建带有说明的标签,用-a指定标签名,-m指定说明文字
    PS:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签
  • git show <tagname>
    查看标签信息
  • git tag -d <tagname>
    删除本地标签
    git push origin :refs/tags/<tagname> 从远程删除标签
  • git push origin <tagname>
    推送某个标签到远程
    git push origin --tags 一次性推送全部尚未推送到远程的本地标签
其他配置
  • git config --global color.ui true
    让Git显示颜色
  • git add -f <file>
    强制将忽略文件添加到Git
  • git check-ignore -v <file>
    检查.gitignore的配置
  • git config --global alias.st status
    配置别名(git status -> git st)
    -global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 基本命令 初始化一个Git仓库,使用git init命令。 1. 使用命令git add,注意,可反复多次使用,添...
    你慧快乐阅读 266评论 0 1
  • Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。 工作区(Working Directory) ...
    Sixah阅读 265评论 0 2
  • 配置 git config --global user.name [name] git config --glob...
    jamalping阅读 378评论 0 0
  • 配置 首先是配置帐号信息 ssh -T git@github.com#登陆github 修改项目中的个人信息 1 ...
    rochuan阅读 711评论 1 1
  • git版本库操作 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步: 第一步:使用命...
    nero_i阅读 218评论 0 1