zoukankan      html  css  js  c++  java
  • Git常用命令

    Workspace:工作区
    Index / Stage:暂存区
    Repository:仓库区(或本地仓库)
    Remote:远程仓库


    查看git 用户名和邮箱地址:
    git config user.name
    git config user.email
    修改用户名和邮箱地址
    git config user.name "xxx"
    git config user.email "xxx"
    创建一个版本库:
    mkdir learngit 然后使用git init 将这个目录变为git可以管理的仓库
    添加文件到仓库
    git add <file> 将文件添加到暂存区
    git commit -m "提交记录" 将文件提交到分支
    git status 可以时刻查看仓库的状态
    git diff 查看文件变化
    我们创建的learngit就是一个工作区
    git diff HEAD -- xxx xxx是指需要查询的文件 查看工作区和版本库最新版本的区别
    git checkout -- file 撤销工作区的修改
    这条命令是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原
    同样 如果工作区的内容被误删了,也可以使用这条命令从版本库中还原一下
    如果需要撤销暂存区的修改 先使用git reset HEAD file 将暂存区的修改回退到工作区,然后
    再使用git checkout -- file 撤销工作区的修改 (HEAD指针是指向当前分支)
    删除工作区的文件直接rm就可以,如果需要删除版本库的这个文件
    先需要git rm file 删掉 然后再git commit一下
    查看分支:git branch
    创建分支:git branch <name>
    切换分支:git checkout <name>
    创建+切换分支:git checkout -b <name>
    合并某分支到当前分支:git merge <name>
    删除分支:git branch -d <name>
    如果主线master和分支分别修改同一文件,然后分别提交上去,最后
    merge分支就就有冲突,所以在工作区修改掉冲突,再提交上去
    git merge --no-ff -m “xxx” 分支名字
    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,
    能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
    (合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
    如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。)
    经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,
    而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,
    否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令,
    先把工作现场储藏起来,然后去修复bug,修复后,再恢复现场后继续工作。
    git stash 储藏一下工作现场。
    git stash list 查看stash
    git stash apply恢复现场,但是恢复后,stash内容并不删除,你需要用git stash drop删除
    或者使用git stash pop,恢复的同时将stash内容也删除了。
    如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除
    命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
    git tag -a <tagname> -m "blablabla..."可以指定标签信息;
    git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
    命令git tag可以查看所有标签。
    git show <tagname> 可以看到这个tag的信息
    命令git push origin <tagname>可以推送一个本地标签;
    命令git push origin --tags可以推送全部未推送过的本地标签;
    命令git tag -d <tagname>可以删除一个本地标签;
    命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
    git 命令别名 例子: 下面co就是别名 checkout是原来的命令
    git config --global alias.co checkout
    git reflog 显示当前分支的最近几次提交
    git pull [remote] [branch] 取回远程仓库的变化,并与本地分支合并
    要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
    需要忽略某些文件时,需要编写.gitignore,这个文件本身要放到版本库中,并且可以对.gitignore做版本管理。

    git clone是把整个git项目拷贝下来,包括里面的日志信息,git项目里的分支,你也可以直接切换、使用里面的分支等等。
    git fetch 是从远程获取最新版本到本地,但不会自动merge。
    git pull相当于git fetch和git merge。其意思是先从远程下载git项目里的文件,然后将文件与本地的分支进行merge。

    SVN与GIT的区别:
    SVN与GIT最大的区别就是,SVN是集中式的版本控制系统,而Git则是分布式的,对于SVN来说,版本库都是保存在
    中央服务器的,更新代码和提交代码都必须提交到中央服务器的。而且如果断网了,就不能正常工作了。
    而对于GIT来说,每个人电脑都有一个完整的版本库,所以不需要联网工作,安全性也更高。

  • 相关阅读:
    AMQP 介绍
    JMS 介绍
    SpringCloud 入门实战(12)--Zipkin(2)--安装使用
    SpringCloud 入门实战(11)--Zipkin(1)--简介
    Kafka 入门实战(3)--SpringBoot 整合 Kafka
    跨域访问方法介绍(9)--nginx 反向代理
    跨域访问方法介绍(8)--使用 WebSocket
    个人网站建好啦!
    Spring Boot配置Slf4j + log4j2
    SpringBoot 解决跨域,3种解决方案
  • 原文地址:https://www.cnblogs.com/BGPYC/p/7511873.html
Copyright © 2011-2022 走看看