git入门教程总结

git 分布式版本控制系统

目录

  • 安装
  • 创建版本库
  • 添加文件到版本库
  • 查看工作区状态和修改到内容
  • 历史版本回退
  • 工作区和暂存区
  • 撤销修改
  • 删除文件
  • 关联GitHub库
  • 创建与合并分支
  • 分支不清除
  • Bug分支
  • 丢弃分支
  • 创建标签
  • 标签操作
  • 同时关联GitHub和码云
  • 安装

    Xcode
  • 创建版本库

    $ mkdir learngit 创建learngit目录
    $ cd learngit
    $ pwd 显示当前目录
    /Users/michael/learngit
    第二步
    git init 将目录变成git可以管理的仓库
    如果没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见
  • 添加文件到版本库

    1.创建一个文件,如readme.txt,放在learnngit目录下。
    2.git add (file), 添加到仓库
    3.git commit -m “ ”,本次提交的说明
  • 查看工作区状态和修改的内容

    git status
    git diff
  • 历史版本回退

    git log (git log --pretty=oneline). 查看历史文件
    git reset --hard HEAD^ HEAD当前文件,HEAD^上一历史文件,HEAD^^上上历史文件
    git reset --hard id 通过ID回到某个版本,用于从过去到将来
    cat file. 查看文件
    git reflog. 查看历史命令(ID号,以便重返未来)
  • 工作区和暂存区

    工作区:能看到的目录,如learngit文件夹
    版本库:隐藏的目录 .git。暂存区storage 分支master
    git add把文件添加进去,实际上就是把文件修改添加到暂存区;
    git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支、
  • 撤销修改

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考历史版本回退,不过前提是没有推送到远程库。
  • 删除文件

    从版本库中删除(不能恢复)
    $ git rm test.txt
    rm ‘test.txt’
    $ git commit -m "remove test.txt"
    手动删错了文件,从版本库恢复
    $ git checkout – test.txt
  • 关联GitHub库

    1.创建SSH Key
    $ ssh-keygen -t rsa -C "[email protected]
    一路回车。此时在用户主目录里找到.ssh目录,里面有id_rsa 私钥和id_rsa.pub 公钥两个文件
    2.登陆GitHub—>setting—->SSH Keys
    title任意,在Key文本框里粘贴id_rsa.pub文件的内容
    3.GitHub,创建新仓库repo
    4.关联$ git remote add origin [email protected]:path/repo-name.git
    第一次推送git push -u origin master
    之后推送git push origin master

  • 创建与合并分支

    创建分支 ,名称dev: $ git checkout -b dev
    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
    $ git branch dev
    $ git checkout dev
    git branch命令查看当前分支,当前分支前面会标一个*号
    可以在分支修改文件,提交
    切换回master分支:
    $ git checkout master
    Switched to branch 'master’
    将dev分支的工作合并到master:
    $ git merge dev
    删除分支:
    $ git branch -d dev
    总结:
    查看分支:git branch
    创建分支:git branch 
    切换分支:git checkout 
    创建+切换分支:git checkout -b 
    合并某分支到当前分支:git merge 
    删除分支:git branch -d

  • 分支不清除

    合并dev分支,请注意–no-ff参数,表示禁用Fast forward:
    $ git merge --no-ff -m “merge with no-ff” dev
  • Bug分支

    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
  • 丢弃分支

    丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除
  • 创建标签

    • 命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

    • git tag -a -m "blablabla…"可以指定标签信息;

    • git tag -s -m "blablabla…"可以用PGP签名标签;

    • 命令git tag可以查看所有标签。

  • 操作标签

    • 命令git push origin 可以推送一个本地标签;

    • 命令git push origin --tags可以推送全部未推送过的本地标签;

    • 命令git tag -d 可以删除一个本地标签;

    • 命令git push origin :refs/tags/可以删除一个远程标签。

  • 同时关联GitHub和码云

    1.在码云上创建一个新项目,跟GitHub操作一样
    2.先取消已在GitHub关联的名为origin的远程库
    git remote rm origin
    3.关联GitHub远程库(名称不同 github)
    git remote add github [email protected]:xxx/learngit.git
    4.再关联码云的远程库 名称gitee
    git remote add gitee https://gitee.com/xxx/learngit.git
    5.查看远程库信息。
    git remote -v
    6.推送到GitHub
    git push github master
    7.推送到码云
    git push gitee master

猜你喜欢

转载自blog.csdn.net/twh6666/article/details/79972858