zoukankan      html  css  js  c++  java
  • git命令学习

    本地操作

    git 本地提交流程

    本地库初始化命令  git init

    设置用户签名  

      项目/仓库级别  (只在当前项目有效) 信息保存在当前项目的 .git/config 文件内

        git config user.name  zhangsan

        git config user.email   lisi@qq.com

      系统用户级别(登录当前系统用户级别)信息保存在当前用户根目录的.gitconfig文件内,cd ~ , cat   .gitconfig

        git config --global user.name zhangsan

        git config --global user.email lisi@qq.com

      如果两个级别的都有设置,优先采用项目级别

    本地项目操作 查看项目状态

     创建文件

    将文件提交到暂存区

    将文件从暂存区撤回

    将文件从暂存区提交到本地库

     修改文件 再看看

    使用 git add  再使用git commit 提交更新文件,或者直接使用 git commit -a -m "your words" 提交更新文件,区别是 后者无法撤回文件

    查看代码版本记录

    git log

    git --pretty=oneline

    git --online

    git reflog

    版本的前进与后退

    1 基于索引值   git reset --hard d4114bf 

    2 使用^(这个命令只能往后退)

    git reset --hard  HEAD^(一个^表示后退一步,两个表示后退两步)

    3 使用~

    git reset --hard  HEAD~n (后退n步)

     #hard,soft,mixed 的区别

    比较命令

    此时 修改的数据还未提交 ,使用git diff aaa.txt 命令 比较的是工作区与暂存区的比较

    git diff HEAD aaa.txt 工作区与本地库之间的比较

    $ git diff HEAD^ aaa.txt  工作区和本地库的上一个版本比较

    分支管理

    git branch -v 查看分支

    git branch test 创建分支 test

    git checkout test  切换分支

    合并分支,1 切换到 被合并的分支,2 执行 git merge 分支名 命令,执行完之后 两个分支就是同一个版本了

     分支合并时的冲突处理

    当分支里 同一个文件的相同行的修改不一致时,git拿不定主意,自动合并会失败(同一文件的不同行有修改时 git可以自动合并),转为程序员手动合并,(关于冲突 不管是分支之间的冲突(就像下面演示的例子), 还是分支之内的冲突(多人基于同一个分支:比如test 开发),解决思路都是, 现将最新版的文件更新到本地 ,本地解决冲突 之后再做提交,再推送到仓库即可)

     制造冲突,

    我们将master的内容合并到test 上去,可以看到有冲突

    test分支处理冲突后再次提交

    此时冲突已经解决 ,但是master和test版本不一致,我们再将test的内容合并到master上去,再看一下文件内容,问题已经解决了

     远程操作

    在github上新建一个项目(本地也建立一个 并创建初始化文件, 并commit)

    git remote -v 查看别名

    git remote add origin https://github.com/Teemo-Java/Test-Code.git  设定别名

    git push origin master  向远程仓库推送

     新建文件夹 并克隆项目

     可以看出来 ,git clone 命令有三个效果,1克隆项目 , 2 设定别名 , 3 初始化本地库

    git fetch 与git merge 与git pull命令

    现在远程分支的文件已经被修改了

    我们使用git fetch抓取,发现本地文件并没有变(是因为fetch命令只帮我们下载了仓库文件 并没有修改工作区文件)

    我们切换到远程仓库,可以看到我们将要拉取的内容看看文件

    我们切换到自己仓库的分支 在进行merge操作,新的内容就可以看到了

    此时我们再在线上修改文件 然后执行git  pull,看看效果

     

    然后执行git pull 命令,可以看到 文件是直接被修改的

    从上面可以看出来 git fetch +git merge = git pull,一般我们如果为了保险 可以先fetch 看看没有什么问题再合并,而 如果变动比较简单 我们可以直接用pull

    SSH 与HTTP 方式

    上面我们所有的操作都是基于HTTP方式来做的,我们也可以使用ssh来操作,使用ssh操作的好处是不用填写密码, 步骤是 我们首先在自己电脑里面生成一个ssh key, ssh-keygen -t rsa -C xx@qq.com,将生成的公钥id_rsa.pub  内容复制到自己git账号里面的 ssh keys里面去,然后我们就可以使用ssh的方式来操作啦,

    使用ssh方式操作时,需要为ssh地址设置一个别名,然后后面所有的操作都对这个新的别名操作即可。

  • 相关阅读:
    页面性能
    js运行机制
    渲染机制
    通信类
    js面向对象 继承
    原型
    [HEOI2016/TJOI2016]求和
    「NOIP2018 保卫王国」
    「LGP4719【模板】动态dp」
    多项式进阶操作
  • 原文地址:https://www.cnblogs.com/tjqBlog/p/10663347.html
Copyright © 2011-2022 走看看