• Git常用操作


    前期准备

    下载并安装Git

    • linux
    sudo apt-get install git
    
    • win

    下载应用程序,安装即可

    设置用户名和email地址

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

    创建版本库(本地)

    初始化当前目录为Git仓库(本地)

    //进入指定目录下
    git init
    

    add 并 commit 文件

    git add readme.txt
    //添加所有新增,或者有改动的文件
    //git add .
    git commit -m "wrote a readme file"
    

    本地相关命令

    git init
    git add readme.txt
    git add .
    
    git commit -m "备注"
    
    查看当前工作区的状况,是否有修改或者待提交的
    git status
    
    修改了readme但是还未add 或者 commit
    查看做了什么修改
    git diff readme.txt
    
    
    查看历史的提交命令
    git log
    git log --pretty=oneline
    
    查看git记录的每一次命令
    git reflog
    
    版本回退
    git reset --hard HEAD^
    git reset --hard HEAD^^
    git reset --hard 1094a
    
    所有的add操作,只是将文件添加进暂存区(stage)
    在通过commit一次性提交
    
    
    
    情况1
    在工作区的文件中,增加了一些修改(并没有add和commit),但是没有被提交到暂存区
    (可以先用git status查看文件的修改状态)
    撤销在工作区做的任何修改
    git checkout -- readme.txt
    
    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
    
    情况2
    在文件中增加了一些内容,并且git add到了暂存区
    可以用git status 查看状态
    step1:
    把暂存区的修改退回到工作区(切换为增加了修改,但是没有执行git add的状态)
    git reset HEAD readme.txt
    step2:
    回到了情况1,把工作区的修改撤销
    
    

    删除文件

    • 新建文件,并已经执行了add操作,提交到了暂存区

    • 手动将目录下的test.txt文件删除,执行git status 会发现image-20200526144247008

    • 确实要删除该文件

      如果只是执行了add 操作
      git rm test.txt
      
      若果还进行了commit,则还需要执行
      git commit -m "remove test.txt"
      
    • 如果是误删除

      用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

       git checkout -- test.txt
      

    远程仓库

    建立起本地仓库和远程仓库的连接

    本地Git仓库和Github仓库之间的传输是通过SSH加密

    • 使用命令生成密钥和公钥(自己的github账户密码)
    ssh-keygen -t rsa -C "youremail@example.com"
    

    在用户主目录里找到.ssh目录,
    id_rsa是私钥,不能泄露出去,
    id_rsa.pub是公钥

    • 将公钥添加到github网站个人账户

    登陆GitHub,打开“Account settings”,“SSH Keys”

    先有本地库,再同步到远程库

    • 再github上新建空白仓库,如learngit
    • 根据提示,在本地的learngit仓库下运行命令
    git remote add origin git@github.com:【GitHub账户名】/learngit.git
    
    • 把本地库所有内容推送到远程库
      (第一次推送的时候使用以下命令)
    git push -u origin master
    
    • 以后的推送至远程
    git push origin master
    

    先有远程库,再同步到本地

    • 在github上创建仓库,勾选自动创建README文件
    • 在本地适当目录下打开git bash,运行
    git clone git@github.com:【github账户名】/【git仓库名】.git
    

    分支管理

    创建并切换到dev分支

    git branch dev
    git checkout dev
    
    git branch
    
    切换分支
    git checkout master
    git switch -c dev  创建并切换到新的分支
    git switch master  切换到已有的分支
    
    合并分支,价格指定的分支合并到当前分支
    git merge dev
    
    合并后删除分支
    git branch -d dev
    
    分支合并可能会有冲突,造成合并失败
    合并失败后,查看文件中的内容,会用
    <<<<<<< HEAD
    Creating a new branch is quick & simple.
    =======
    Creating a new branch is quick AND simple.
    >>>>>>> feature1
    标记出每个分支的修改
    
    在文件中修改冲突,后,再add commit即可
    
    查看分支合并图
    git log --graph
    
    
    
    
    
    • 分支策略,禁用fast forword

    强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息

    git switch -c dev
    git add readme.txt 
    git commit -m "add merge"
    git switch master
    git merge --no-ff -m "merge with no-ff" dev
    
    git log --graph
    
    git branch
    
    git branch -d dev
    

    远程仓库覆盖本地

    git远程分支覆盖本地分支

    git fetch --all
    git reset --hard origin/master (这里master要修改为对应的分支名)
    git pull
    

    从远程仓库拉取指定分支到本地

    命令:

    git clone -b develop XXX 
    

    其中develop就是分支的名称

    其他

    用户名、账号密码设置

    设置git软件绑定的用户名和邮箱账号

    git设置全局和单个仓库账号和密码

    Git全局配置和单个仓库的用户名邮箱配置

    1. 配置全局仓库的账号和密码
        git config --global user.name "userName"  //你的用户名
        git config --global user.email "email address" //你的邮箱地址
    
    1. 如果你的公司项目也放在git上面,为了不与个人账号的发生冲突,这时候需要给这个仓库单独设立账号和密码
      进入到这个仓库里面,使用下面命令
        git config user.name "userName"  //你的用户名
        git config user.email "email address" //你的邮箱地址
    
    1. 设置好账号和密码后
        git config --list   //查看git设置情况
    

    已有本地仓库,将本地仓库关联远程仓库

    如何将本地的一个新项目上传到GitHub上新建的仓库中去

    本地已经是一个git仓库

    • 添加本地仓库与远程仓库的关联
    git remote add origin https://gitee.com/tangg9646/tests.git
    
    • 查看本地仓库与远程仓库的关联
    git remote -v
    
    • 取消本地仓库与远程仓库的关联
    git remote remove origin
    
    • 如果初始化远程仓库的时候,生成了readme.md 需要先执行额外操作
    git pull --rebase origin master
    
    • 将本地仓库push到远程仓库
    第一次提交(远程仓库为空)
    git push -u origin master
    第二次上传
    git push origin master
    

    git每次pull或push都要输入用户名和密码解决方法

    git config --global credential.helper store
    

    这个命令是在本地生成一个账号密码文件,这样就不用每次都输入了(但是还得输入一次)

    这个指令对于windows,linux都是通用的!!!

    可以通过命令

    cat ~/.git-credentials
    

    进行查看!

  • 相关阅读:
    680. Valid Palindrome II【easy】
    125. Valid Palindrome【easy】
    459. Repeated Substring Pattern【easy】
    2. Trailing Zeros【easy】
    142. O(1) Check Power of 2【easy】
    181. Flip Bits【easy】
    183.Wood Cut【hard】
    61. Search for a Range【medium】
    关闭微软对win10的推送
    让未激活的win8.1不再跳出提示激活的窗口
  • 原文地址:https://www.cnblogs.com/tangg/p/13341007.html
Copyright © 2020-2023  润新知