zoukankan      html  css  js  c++  java
  • Git使用笔记 (github为例)

    ---
    `Git`
    # Git管理 #
    - 创建仓库
    git init
    在本地目录下建立新git仓库,该仓库可以为空也可以是重新初始化的仓库。该命令将创建一个名为 .git 的子目录,这个子目录含有初始化的 Git 仓库中所有的必须文件,仅仅是做了一个初始化的操作,项目里的文件还没有被跟踪。此时可通过 git add 命令来实现对指定文件的跟踪,然后执行 git commit 提交。
    git clone [path] [name]
    克隆仓库至当前目录,path可以为本地也可以是远程,name为仓库的命名。
    - 添加和提交
    git add [file]
    workdir->index->head
    将修改的文件添加入缓存流(index)
    git commit -m "代码提交信息" /git commit -a /git commit --initial
    将修改后的index提交至head
    - 推送至仓库
    git push orgin [branch(default:master)]
    若你之前未使用clone那么需要
    使用:
    git remote add origin <server>
    - 分支概念

    分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
    git checkout -b newfeature #建立并切换分支
    or
    git branch newfeature #建立分支
    git checkout newfeature #切换分支

    git branch # 查看分支
    并非每次都成功,并可能出现冲突(conflicts)。
    这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。
    改完之后,你需要执行如下命令以将它们标记为合并成功:
    git add <filename>
    git merge <name> # 合并分支到master
    git branch -d <name> # 删除分支
    git diff <source_branch> <target_branch>
    git log --graph #查看分支合并图
    - 日志
    git log #显示本地仓库日志
    git tag 1.0.0 1b2e1d63ff #为各个提交记录设置标签
    - 恢复

    git checkout -- <file> #取消对文件的修改。还原到最近的版本,废弃本地做的修改。
    git reset HEAD <file>... #取消已经暂存的文件。即,撤销先前"git add"的操作
    git commit --amend #修改最后一次提交。用于修改上一次的提交信息,或漏提交文件等情况。
    git reset HEAD^ #回退所有内容到上一个版本
    git reset HEAD^ a.py #回退a.py这个文件的版本到上一个版本
    git reset –soft HEAD~3 #向前回退到第3个版本
    git reset –hard origin/master #将本地的状态回退到和远程的一样
    git reset 057d #回退到某个版本
    git revert HEAD #回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit.(代码回滚到上个版本,并提交git)
    git fetch
    git reset --hard origin/master #丢弃本地版本恢复为远程版本

    文件删除恢复分为4种情况:
    1. 使用系统的删除或者对文件进行了修改. 可以使用git checkout -- <file>来恢复.
    2. 使用git rm 删除的,即是将记录写入了index,必须采用 HEAD 来恢复index.
    git reset HEAD <file> , 之后按照1来恢复
    3. 使用git commit 修改了 HEAD 同理 git reflog查看操作日志 修改 git reset HEAD{x} 来恢复HEAD.
    4. 使用git push修改了远端仓库 使用 git log 查看版本改动 ,git reset --hard <commit_id> 还原到位.使用git push -f 强制恢复远程仓库.

    - SSH方式链接

    Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议。
    HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;
    SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

    1. 生成SSH-key

    ssh-keygen -t rsa -C youremail@email.com rsa加密生成SSH秘钥
    生成的秘钥分为私钥id_rsa 和 公钥 id_rsa.pub 保存在 ~/.ssh/ 目录下。
    2. 添加SSH-key

    打开github账户的profile 设置 SSH-key
    复制id_rsa.pub内容至key区域
    3. 测试SSH链接
    SSH -T git@github.com

    4. 仓库设置SSH关联

    由于remote方式可能不是ssh,使用
    git remote -v #查看remote方式
    若无ssh-url则进行
    git remote set-url origin <ssh-url>
    SSH-URL可从github repository 的clone or download处复制获取.
    格式类似于:git@github.com:account/project.git
    ---

  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/sonnet/p/9000275.html
Copyright © 2011-2022 走看看