• Git 学习笔记


    本文整理参考廖雪峰的 Git 教程, 整理 Git 学习笔记, 用于 Git 常用命令速查:常用命令用彩色标注!

    Git学习笔记
    $ git config --global user.name "Your Name" 配置本机所有仓库的用户名
    $ git config --global user.email "email@example.com" 配置本机所有仓库的Email地址
    $ git init 初始化一个Git仓库
    $ ls -ah 查看隐藏目录,创建仓库之后会生成.git文件夹(这不是Git命令, 只是用来查看.git这个隐藏文件)

    $ git add <file>

    $ git add *.cc *.h

    添加文件到Git仓库, 可重复使用添加多个文件

    一次性添加所有.cc, .h文件, 批量处理

    $ git commit -m "说明文字"

    $ git commit --amend

    将暂存区的文件提交到版本库

    修改最后一次提交是commit的说明文字用 --amend, 修改好之后Ctrl+O写入, Ctrl+x离开, 文件格式选择Alt+M选择DOS格式, 若选择MAC格式在Ubuntu下不能显示这次提交信息

    $ git status 查看仓库状态
    $ git diff 查看工作区与版本库最新版本的差异
    $ git diff <file> 查看指定文件工作区与版本库的差异
    $ git log 查看每一次修改的日志,显示commit ID,作者,日期,提交说明文字
    $ git log --pretty=oneline 查看日志单行模式,显示commit ID,提交说明文字
    $ git reset --hard HEAD^ 回退到上一个版本,可以连续使用。
    $ git reset --hard <ID> 版本回退到指定的commit ID
    $ git reflog 查看每一次操作的ID,如commit ID,reset ID等...
    $ git diff HEAD -- <file> 查看指定文件在工作区与版本库里面的最新版本的差异
    $ git checkout -- <file>

    撤销文件<file>在工作区的修改,让<file>回到最近一次git commitgit add时的状态。可用于工作区误删文件恢复。--很重要,没有--,就变成了“切换到另一个分支”的命令

    $ git reset HEAD <file> 将文件<file>撤出暂存区,放回到工作区
    $ git rm <file>

    删除版本库中的file文件. 步骤为:

    1. rm <file>                 删除工作区的file

    2. git rm <file>             删除版本库中的file

    3. git commit -m "..."       提交删除

    误删恢复步骤:

    1. git log --pretty=oneline  查看删除前版本号

    2. git reset --hard <ID>     恢复到删除前版本

    3. git checkout -- <file>    恢复工作区误删文件

    $ ssh-keygen -t rsa -C "email@example.com" 创建SSH Key
    $ git push origin master 推送本地master分支到远程仓库master分支
    $ git remote add origin git@server-name:path/repo-name.git 关联一个远程库
    $ git clone git@github.com:ChanLiee/learngit.git 克隆远程仓库到本地, 注意要把SSH Key添加到GitHub
    $ git branch 列出所有分支,并在当前分支前面会标一个*
    $ git branch <name> 创建分支
    $ git checkout <name> 切换分支
    $ git checkout -b <name> 创建分支,然后切换分支
    $ git merge <name>

    Fast forward模式合并指定分支<name>到当前分支,删除分支后,会丢掉分支信息。

    如果出现冲突Git会用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,需要修改后再运行git commit即可

    $ git merge --no-ff -m "提交说明" <name> 推荐使用普通模式合并分支,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
    $ git branch -d <name> 删除分支
    $ git log --graph --pretty=oneline --abbrev-commit 用带参数的log查看分支合并情况
    $ git log --graph 显示分支合并的详细信息
    $ git stash 把当前工作区现场“储藏”起来,等以后恢复现场后继续工作
    $ git stash list 查看暂存区stash列表,显示stash数目以及所在分支
    $ git stash apply stash@{0} 恢复标号为0stash到工作区,但stash内容不删除  
    $ git stash drop  stash@{0} 删除标号为0stash
    $ git stash pop 恢复的同时把stash内容也删了
    $ git branch -D <name> 强行删除分支,如果要丢弃一个没有被合并过的分支,可以使用该命令强行删除    
    $ git remote 查看远程库信息
    $ git remote -v 查看远程库详细信息
    $ git push origin <name> 推送其他分支
    $ git checkout -b dev origin/dev 创建远程origindev分支到本地,就通过修改本地dev在推送到远程dev分支的方式修改远程dev分支
    $ git push origin dev 将本地分支dev推送到远程dev分支,如果推送失败表明远程分支比本地更新,需要先用git pull,试图合并
    $ git pull

    如果提交冲突,则需要代码合并后在提交,先用git pull把最新的提交从origin/dev抓下来,

    然后,在本地合并,手动解决冲突,提交commit,再推送push

    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,使用下面的命令:

    $ git branch --set-upstream dev origin/dev 指定本地dev分支与远程origin/dev分支的链接,关联之后才可以pull
    $ git tag <tag> 给当前ID打上标签
    $ git tag <tag> <ID> 给某个commit ID打上<tag>标签
    $ git tag 查看标签,按字母排序
    $ git show <tag> 查看<tag>标签信息
    $ git tag -a <tag> -m "说明文字" <ID> 创建带有说明的标签,用-a指定表签名,-m指定说明文字
    $ git tag -d <tag> 删除标签<tag>
    $ git push origin <tag> 推送某个标签到远程
    $ git push origin --tags 一次性推送全部尚未推送到远程的本地标签到远程
    $ git push origin :refs/tags/<tag>

    删除远程库标签步骤:

    1. $ git tag -d v0.99                   删除本地标签
    2. $ git push origin :refs/tags/v0.99   再用push删除远程库标签

     $git remote set-url origin [url]  使用git remote -v 可以查看远程仓库地址和权限, 如果远程仓库地址与实际地址不符合, 只用该命令修改本地保存的远程仓库地址, 例如:git remote set-url origin ssh://git@222.25.175.2/lte-sat.git
  • 相关阅读:
    根据数据库表字段动态生成选择画面
    ABAP中字符串处理方法小结(二)
    如何获取汉字字符串长度
    如何强制分页-[NEW-PAGE]
    如何设置输出颜色-[FORMAT..COLOR..]
    ◆◆0如何取得字符串最后一位
    VALSE2019
    pycharm使用总结
    生活经验
    爱情存在吗-3
  • 原文地址:https://www.cnblogs.com/moon1992/p/5719822.html
Copyright © 2020-2023  润新知