zoukankan      html  css  js  c++  java
  • Git学习笔记

    其实用Github Desktop就足以应付当前的需求了,但好像对于程序员来讲不够“专业”和“优雅”。

    学习资料https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6。写的很好,这里将常用到的命令进行记录,有些太长的则直接引用。


    初次配置信息

    --global为全局,单独配置在该项目目录下运行没有--global的命令来配置

    git config --global user.name "Will_Zhu"

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

     

    检查配置信息

    git config --list  显示所有配置

    git config user.name

    git config user.email

     

    获取帮助

    git help <verb>

    git <verb> --help

    man git-<verb>     win下无用

     

    获取Git仓库repository

    从现有目录中初始化仓库:先在终端中进入目标文件夹下git init

    克隆现有的仓库git clone [url]local_repository_name

    如果不指定local_repository_name则在当前路径下生成和url中一样的文件夹,也可克隆本地的仓库,url为目标仓库路径后加.git

     

    检查当前状态git status

    跟踪新文件、将已跟踪的文件放到暂存区git add file

     

    git diff 查看尚未暂存的具体修改内容

    git diff --stagedgit diff --cached  查看已暂存的将要添加到下次提交里的内容

     

    指定git编辑器

    win:     git config --global core.editor"'C:Program Files (x86)Microsoft VS Codecode.exe' -w"

    mac:  

     

    写入环境变量(不写入则mac重启后会之前的设置会失效)

    https://blog.csdn.net/Edai9508/article/details/6006269

    https://code.visualstudio.com/docs/setup/mac

     

    提交更新

    git commit     启动默认编辑器,输入本次更新的说明

    git commit - m message  直接附带说明

    git commit -a 自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过git add的步骤

    撤销

    git reset HEAD fileName  取消暂存的文件,将文件变为changes not staged for commit

    git checkout -- fileName    恢复到上次提交时的内容

    git rm file   删除指定文件,也可单独使用rm,反正都要git commit

    git clean -f 恢复到上次commit的样子

    git log 查看提交历史

    git log -p 显示每次提交的差异,可再加上数字指定显示最近的提交,如git log -p -2显示最近2次的提交内容差异

    git log --graph 以图表方式显示

    具体内容https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2

     

    远程仓库

    git remote  查看已经配置的远程仓库服务器

    git remote -v 显示需要读写远程仓库使用的git保存的简写与其对应的URL

    gitremote add <shortname> <url> 添加一个新的远程仓库并指定引用简写,一般叫origin,可添加多个远程仓库

    git fetch <shortname> 将远程仓库内容抓取到本地,但无法直接看到,一般之后会用合并功能git merge origin/master origin库中的branch合并到当前branch

    git fetch --all 抓取所有远程仓库

    git push origin master 将本地的推送到远程仓库

    git remote show origin 查看远程仓库

    git remote rename <oldShortname> <newShortname> 修改添加的远程仓库的简写名

    git remote rm <shortname> 移除远程仓库

     

    标签

    标签分为轻量标签lightweight与附注标签annotated)。

    轻量标签只是一个特定提交的引用。git tag v1.0 -m "my version1.0"  其中-m可有可无

    附注标签是存储在Git数据库中的一个完整对象。它们是可以被校验的;其中包含打标签者的名字、电子邮箱、日期。并且可以被GNUPrivacy Guard (GPG)签名与校验。通常建议创建附注标签。git tag -a v1.0 -m 'my version1.1'  其中-m必须有,没有会弹出编辑器让写。

    默认情况下,git push 命令不会传送标签到远程仓库上,上上传必须手动git push origin <tagName>。一次性上传全部的标签git push origin --tags

    git tag 查看已有的标签

    git show <tagName> 查看标签信息与对应的提交信息

    git tag -d <tagName> 删除本地标签

    git push <remote> :refs/tags/<tagName> 删除远程仓库

     

    Git别名--

     

    分支

    git branch 查看本地所有分支,参数--merged查看那些分支已经合并到当前分支,参数--no-merged查看那些没有合并到当前分支的分支,参数-a查看包括远程仓库的所有分支

    git branch <newBranch> 创建一个新的分支,参数-d为删除分支,若该分支并未合并到其他分支,则需要用-D

    git checkout <branch> 切换到该分支,加上-b则为以当前分支为蓝本创建一个新分支并切换

    git log --oneline --decorate 查看各个分支当前所指的对象

    git mergetool 使用图形化工具来解决冲突

     

    远程分支

    git ls-remote 显示远程引用的完整列表

    git checkout --track <remote>/<branch> 创建一个跟踪指定远程仓库中的分支的同名分支,并切换到该分支。

    git checkout -b <newBranch> <remote>/<branch> 创建一个分支,跟踪指定远程仓库中的分支,并切换到新创建到的分支。

    git branch -u <remote>/<branch> 设置/修改已有本地分支跟踪远程仓库中的分支

    git branch -vv 列出所有本地分支并包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否领先、落后或是都有。

    git push <remote> --delete <branch> 删除远程仓库中的分支

    git push <remote> branch -u 将本地的分支上传到远程仓库中(远程仓库之前没有该分支)

     

    关于变基 https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA

  • 相关阅读:
    8. String to Integer (atoi)
    PHP Warning: strftime(): It is not safe to rely on the system's timezone set
    Jackson 使用
    用vim去掉utf-8 BOM
    oracle 11g 从 dmp 文件中导出 sql 代码 的方法.
    git gitosis 添加项目
    Linux gcc和gdb程序调试用法 {转}
    Dos中转义符
    HTML样式链接到外部样式表
    转:财富与智慧
  • 原文地址:https://www.cnblogs.com/Will-zyq/p/11283481.html
Copyright © 2011-2022 走看看