zoukankan      html  css  js  c++  java
  • GIT命令操作

    基础操作

    ***初始化GIT仓库:

                  git init

    ***身份配置:

                  git config --global user.name "您的名字"
                  git config --global user.email "您的邮箱"

    ***创建一个新仓库:

                  mkdir learngit

    ***进入到仓库目录:

                  cd learngit

    ***查看目录路径:

                  pwd

    ***添加文件到Git仓库(可多次添加):

                  git add

    ***添加文件时的备注信息:

                  git commit -m "备注信息"

    ***文件修改过之后查看当前仓库状态:

                  git status

    ***文件修改过如果要查看具体修改过什么内容(显示差异):

                  git diff 文件名

    版本回退

    ***查看提交的历史记录:

    git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file,也可以通过提交的时间来查看。

    ***如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

    提示:这里看到的一长串数字就是类似f4a6761c4....就是commit id(版本号)

    ***如果要把当前版本回退到上一个版本:

                  git reset --hard HEAD^

    ***查看具体版本内容是否是上一个版本:

                  cat 文件名

    注意:HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

    ***当版本回退成功之后还想找回之前的版本(只要命令行未关闭,然后找到之前版本的commit id,这个时候就可以回到之前的版本了):

                  git reset --hard f4a67

    版本没必要写全,前几位就可以了。

    版本回退图,只需要切换HEAD的指针即可:

     

    ***现在,如果说你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

    Git提供了一个命令git reflog用来记录你的每一次命令:

     找到了commit id,这个时候就可以找到之前的版本了。

    修改管理

    ***查看工作区和版本库最新版本的区别:

                  git diff HEAD -- aaa.txt

    ***丢弃工作区的修改(在文件未添加的情况下,需要将工作区的全部修改撤销)/另外在删错文件的情况下(版本库里还存在此文件,需要把误删的文件恢复到最新版本):

                  git checkout -- aaa.txt

    ***也可以通过git reset HEAD 可以把暂存区的修改撤销掉,重新放回工作区(git reset不光可以回退版本,也可以把暂存区的修改回退到工作区,我们用HEAD时,表示最新的版本)

                  git reset HEAD

    删除文件

    ***删除工作区的文件:

                  rm aaa.txt

    ***删除版本库的文件:(记得删除之后commit提交文件)

                  git rm aaa.txt

    远程分支跟踪(否则每次提交都必须要指定想要push或者pull的远程分支(例如):git push origin new 

                  git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字

    远程仓库

    ***克隆到本地(如果说别人仓库的项目,需要克隆到自己仓库,点击“Fork”即可。):

                  git clone git@github.com:michaelliao/gitskills.git

    Git支持多种协议,包括https,ssh,使用https速度较慢,而且每次推送都需要输入口令;默认使用ssh.

    分支管理

    ***创建分支(创建分支:git branch 分支名----切换分支:git checkout 分支名):

                  git checkout -b dev

    ***分支上传:

                  git push origin dev

    ***查看分支:

                  git branch

    ***查看全部分支(远程和本地的):

                  git branch -a

    ***分支切换:

                  git checkout master

    ***合并分支(Fast-forward:快捷合并):

                  git merge dev

    ***删除本地分支:

                  git branch -d dev

    ***删除远程分支:

                  git push --delete origin dev

    ***查看分支合并图(git log --graph --pretty=oneline --abbrev-commit简洁版):

                  git log --graph

    ***准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

                  git merge --no-ff -m "merge with no-ff" dev

    ***更新远程分支

                git fetch

    ***查看远程分支

                git branch -r

    ***查看本地分支

                git branch -l

    因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去;加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

    ※ bug分支

  • 相关阅读:
    iOS10---新特性以及适配点
    linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。
    Linux安装JDK完整步骤
    ajax获取json数据为undefined--原因解析
    怎样用jQuery拿到select中被选中的option的值
    一个Filter需要配置多个url-pattern
    Jquery+Ajax实现Select动态添加数据
    tomcat启动报错:Address already in use: JVM_Bind
    Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson
    Java中文乱码解决方案
  • 原文地址:https://www.cnblogs.com/1156063074hp/p/9473007.html
Copyright © 2011-2022 走看看