• git常用命令(备忘)


    从零开始配置一个github仓库与本地同步:

    安装git后,进行git全局配置:

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

    本地选择一个文件夹,在gitbash中执行git init命令,把这个目录变成git可以管理的仓库

    创建SSH key:$ ssh-keygen -t rsa -C "youremail@example.com"

    将.ssh目录下的id_rsa.pub公钥文件中的内容粘贴到GitHub Account settings页面SSH Keys下的add ssh key中

    github上创建一个仓库与本地关联,如git remote add origin git@github.com:EllonDaris/py-projects.git

    下一步,就可以把本地库的所有内容推送到远程库上: git push -u origin master,实际是把当前分支master推送到远程,如果出现以下报错:

    $ git push origin master
    To github.com:EllonDaris/py-projects.git
    ! [rejected] master -> master (fetch first)
    error: failed to push some refs to 'git@github.com:EllonDaris/py-projects.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.

    因为在github上有一个readme.md文件,需要执行git pull --rebase origin master把这个文件更新下来,接着再git push -u origin master

    之后提交只要通过命令git push origin master

    git clone + 仓库的ssh地址即可克隆到本地

    ----------------------------------------------------------------------------------------------------------------------------------------------

    下面是一些常用命令:

    git add <filename>添加需要提交的文件,也可git add  .   全部提交

    git diff <filename>查看修改的具体内容

    git status查看仓库当前状态

    git commit -m "..." 提交时备注修改的内容

    git log (--pretty==oneline )查看历史记录

    git reset --hard HEAD^  回退到上一版本(git中,HEAD表示当前版本,HEAD^表示上个版本,……以此类推,前100个版本HEAD~100)

    或者git reset --hard +(commit id)

    git reflog 记录每一次命令,可以用来查询每个版本的commit id

    整个目录是一个工作区,.git是版本库,工作区中的文件被add时,就是被添加到stage(即暂存区),commit后就被提交到当前分支,HEAD指针指向master分支中需要的版本

    git checkout -- file 让这个文件回到最近一次commit或add时的状态

    当一个修改被add但未commit时,可以用 git reset HEAD filename可以把暂存区的修改撤销掉重新放回工作区,再git checkout --filename丢弃工作区的修改

    工作区中的文件被删除后,需要git rm filename 并 git commit 进行同步,如果是误删,用上面的命令 check out -- filename

    ----------------------------------------------------------------------------------------------------------------------------------------------

    下面是别人整理的一些心得,一并放上来了。

    从历史的提交建立新分支的方法: 方法一: checkout到历史提交,然后checkout -b。 方法二: reset到历史提交,checkout -b,然后再reset到原来的版本。 方法三: git branch <branch> <start point>

    将某个历史版本全部拉到工作区和暂存区: 方法一: 可能的需求是为了将过去删除掉的修改重新应用到最新的版本,这时可以先回到历史版本处建立分支,然后回到原来的最新的版本,进行merge分支的操作。 方法二: reset加上hard参数到需要的历史版本,然后再reset加上soft参数回来。

    将历史版本的某文件版本拉到当前工作区或者暂存区进行处理: 方法一: git reset HEAD~2 foo.py,直接拉到暂存区。 方法二: git checkout HEAD~2 foo.py,拉到工作区和暂存区。

    已经有添加到暂存区的文件修改,之后又进行了修改。想要都撤销掉,变为和仓库中的版本相同(仓库覆盖工作和暂存): 方法一:1、git reset HEAD file 清空暂存区的提交,变为和仓库中的版本相同。2、git checkout -- file 以暂存区为蓝本,覆盖掉工作区。 方法二:git checkout HEAD -- file 。

    已经添加到暂存区的修改之后又进行了修改,想要都撤销掉,变为和仓库中的版本相同(仓库覆盖工作和暂存): 方法一:git reset --hard HEAD 重设HEAD,hard参数覆盖工作区和暂存区。 方法二:强制切换到其他分支丢弃更改,然后再切回来。

    撤销当前工作区的文件修改,变为和暂存区相同(暂存覆盖工作): 方法一:git checkout -- file 暂存区覆盖工作区(以暂存区为蓝本,覆盖掉工作区)。

    撤销添加到暂存区的文件修改,将修改退回到工作区(暂存先覆盖工作,然后仓库覆盖暂存): 方法一:1、git checkout -- file 以暂存区为蓝本,覆盖掉工作区。 2、git reset HEAD file 清空暂存区的提交,变为和仓库中的版本相同。

    清空暂存区文件修改: 方法一:git reset -- file 清空暂存区的文件修改。

    清空暂存区: 方法一:git reset HEAD file 清空暂存区。

    checkout文件层面的操作: 主要对暂存区和工作区起作用,一般有暂存区覆盖工作区的行为特征。

    reset文件层面的操作: 主要对暂存区起作用。

  • 相关阅读:
    Codeforces 754A Lesha and array splitting (搜索)
    浅入分析Linux
    MakeFile基本使用
    Mac 安装YCM
    Homebrew 配置
    虚拟机复制操作CentOS6导致eth0转为eth0以至于网络服务启动失败的解决方案
    Kickstart安装
    Linux编译安装MySQL
    Python源码读后小结
    编译原理小结
  • 原文地址:https://www.cnblogs.com/Ellon-Daris/p/7355628.html
Copyright © 2020-2023  润新知