Git命令行使用笔记

ssh

  • debug1: Trying private key: /home/hgneer/.ssh/id_dsa
  • debug1: Trying private key: /home/hgneer/.ssh/id_ecdsa
  • debug1: Trying private key: /home/hgneer/.ssh/id_ed25519
  • 重新创建ssh秘钥文件时一定注意公钥一般会发生变化,
    此时记得给Github添加公钥,避免不必要的麻烦。
  • DSA用在Github的SSH不行。

git clone/git init

  • 如果用Github托管的话,一般先去Github建立Repository然后在自己主机clone会方便些;
    用git init的话在git remote添加远程主机地址时就要去创建Github的Repository来充当地址。
  • 虽然Git本身支持多种协议的远程主机地址,且通常使用git协议的地址速度最快,
    但是Github代码托管平台却只提供https和ssh协议的地址。

git remote

  • 可以修改.git中的config文件来改变远程主机地址,
    但是注意Github上只有Public的Repository才能使用git协议的地址作为Git的远程主机地址。
  • 自己添加远程主机的名字最好不要写成origin。
  • 注意从远程主机clone下来后默认远程主机名是origin,可以用git clone -o <想要的主机名> 主机地址。

git fetch

  • git fetch <远程主机名> <远程分支名>
  • fetch得到的分支在Repository,
    之后通过checkout创建一个本地分支或者merge得到的分支或者rebase得到的分支
  • git merge是合并分支到当前分支,不管是本地分支还是远程分支
  • git rebase暂时不要用,留到后面理解,rebase是一种合并方式?

git pull

  • 取回远程分支的更新再与本地某分支合并
  • git pull <远程主机名> <远程分支名> : <本地分支名>
  • 相当于git fetch + git merge
  • -p可以使得在本地删除远程已删除的分支
  • git pull <远程主机名>表示与本分支的追踪分支进行更新及合并

git push

  • 把本地的更新推送到远程并合并
  • git push <远程主机名> <本地分支名> : <远程分支名> (<来源地> : <目的地>)
  • 省掉远程分支名则表示与追踪分支保持一致来推送
  • 省掉本地分支名则表示推送一个空分支到远程分支,效果是删除远程分支
  • 当本地分支与多个远程主机存在追踪关系可以用-u来选择默认远程主机
  • 推送程度:simple(当前分支)、matching(所有对应远程分支的本地分支)、all(所有分支)
  • 如果远程分支比本地分支新,git push 之前一般需要 git pull
  • git push不会推送tags,除非加上–tags
  • before git push,git fetch first and then git merge,or JUST git pull –rebase.

git tag

  • 标签命名与commit注释有关?

git log

  • git log –name-status
  • git log –author=hgneer
  • git log –pretty=oneline
  • git log –graph –oneline –decorate –all

git branch

  • git branch <分支名>是新建一个分支但不改变当前分支,
    git checkout -b <分支名>是新建一个分支并切换到该分支
  • git checkout - 切换到上一分支
  • git branch –set-upstream-to=<远程分支名>是为当前分支建立追踪分支

git commit

  • git commit -v提交时显示所有diff信息在最下方
  • git commit –amend 可以修改制定commit对应的注释

撤销

  • git log 找到你想撤销的commit_id哈希值
  • git reset commit_id哈希值 完成Commit命令的撤销,但是不对代码修改进行撤销,
  • git reset –keep commit_id哈希值 重置当前HEAD为指定commit,但保持暂存区和工作区不变
  • git reset –hard commit_id哈希值 完成撤销,同时将代码恢复到前一commit_id 对应的版本。
文章作者: 红发
文章链接: https://AIpynux.github.io/2019/02/24/Git命令行使用笔记/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 红发