zoukankan      html  css  js  c++  java
  • git使用

    大多数Git服务器使用SSH公钥进行授权。
    使用ssh-kengen为账户生成公私钥
    ssh-keygen -t rsa -C ‘346255609@qq.com
    会在用户.ssh目录生成公私钥文件
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/cc/.ssh/id_rsa): 私钥文件
    Enter passphrase (empty for no passphrase): 公私钥文件是否需要密码,空不需要
    Enter same passphrase again:
    Your identification has been saved in /home/cc/.ssh/id_rsa.
    Your public key has been saved in /home/cc/.ssh/id_rsa.pub.

    登录github、gitlab平台上传公钥授权

    本地设置全局git用户信息:
    git config —global user.name ‘caohongchang’
    git config —global user.email ‘346255609@qq.com

    git下载指定分支
    git clone -b 分支 giturl

    git status 查看工作区相对于暂存区的差别

    git add 将修改、新增从工作区添加到暂存区

    git commit -m ‘注释’ 将暂存区内容添加到本地仓库

    git push origin master 将本地版本库推送到远程

    origin是远程主机,master表示远程的master分支

    git log --pretty=oneline 查看日志

    git reset --hard commitid 回退到指定版本

    git checkout commitid /path/file  指定文件回退到指定版本

    git checkout -- /path/file  撤销更改

    git branch -a  查看所有分支,*代表当前处于哪个分支

    git checkout -b 分支名字  创建并切换到新分支

    git checkout dev  切换到dev分支

    git branch -d dev  删除新建的本地分支dev

    git checkout -b 本地分支名x origin/远程分支名x  拉取远程分支并创建本地分支

    git push origin dev  推送新创建的分支dev到远程

    git push origin --delete dev  删除远程分支

    git clean -f  删除未跟踪的文件

    git clean -fd  删除未跟踪的文件和目录

    git remote  不带参数,列出已经存在的远程分支

    git remote -v  列出详细信息

    合并分支:
    git checkout dev进入dev分支
    vim z.php修改z文件
    git commit .提交
    git push origin dev推送到远程dev分支
    此时进入master分支
    git checkout master
    在此期间z文件没有修改情况下,合并dev到master
    git merge dev##合并指定分支(dev)到当前分支
    Updating 808f4f7..c2069b2
    Fast-forward##这次合并是快进合并,没有冲突,直接把master指向dev的当前提交

    git push推送合并到远程

    往往情况是多人同时修改一个文件,合并并没有这么愉快。
    解决冲突
    在dev分支修改z文件,提交。
    在master修改z文件,也提交。
    此时进入master,想要合并进来dev
    git checkout master
    git merge dev
    CONFLICT (content): Merge conflict in source/z.php
    Automatic merge failed; fix conflicts and then commit the result
    表明合并有冲突,使用git status查看冲突文件,git遇到冲突时将所有修改同时保存在冲突文件中,
    <<<<<<< HEAD当前分支中的修改
    =======
    >>>>>>> 要合并进来的分支的修改
    手动解决掉冲突的位置后,重新提交。
    git add .
    git commit .
    git push


    https://blog.csdn.net/yxlshk/article/details/79944535
    git reset和git revert
    git恢复到之前版本的两种方法reset、revert
    reset描述:
    使用git经常会希望撤销提交操作,回到原来的样子,使用两种方法:回退(reset)、反做(revert)。
    reset的作用是修改HEAD的位置,即将HEAD指向之前的某个版本,reset后,目标版本之后的提交就不见了。
    适用场景:想恢复到之前某个提交,且那个提交之后的提交也都不要了,就可以用这种方法。
    操作:
    git log --pretty=oneline
    git reset --hard commitId##命令将版本回退
    git log查看,本地HEAD已经指向之前的版本
    git push -f##使用git push会报错,因为本地HEAD指向的版本比远程要旧,所以加上-f 强制推上去。远程上也已生效。

    revert的作用是反做一个新版本,新版本内容与要回退到的目标版本一样,但HEAD指针是指向新生成的版本。
    适用场景:想恢复到之前某个提交(该提交不是merge类型),但又想保留目标版本后面的版本,记录下整个版本变动,就用这个方法。
    操作:
    git log --pretty=oneline
    git revert -n commitId##反做,可能会出现冲突,手动修改冲突,git add
    git commit
    git log##查看新生成的版本
    git push推向远程库。反做成功。

    初始化的使用

    创建仓库

    cd 目录

    git init 

    git remote add origin git@ds.git

    git pull

    git add .

    git commit

    git push -u/-f origin master

    git url设置错误时:

    git remote set-url origin git@github.com:lookingfor/pro.git

    git cherry-pick 

    可以理解为”挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。

    当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了
    用法
    git cherry-pick [<options>] <commit-ish>...

    常用options:
        --quit                退出当前的chery-pick序列
        --continue            继续当前的chery-pick序列
        --abort               取消当前的chery-pick序列,恢复当前分支
        -n, --no-commit       不自动提交
        -e, --edit            编辑提交信息

    git cherry-pick <commit id>

    git cherry-pick a3aed7c0


    git diff origin/master

    git diff --stat origin/master

    git diff --stat origin/master master

    在本地创建分支dev并切换到该分支

    git checkout -b dev(本地分支名称) origin/dev(远程分支名称)

    git已经删除了远程分支,本地仍然能看到的解决方法

    使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息

    此时我们可以看到哪些远程仓库已经不存在的分支,根据提示,使用 以下命令,这样就能成功在本地删除远程不存在的分支:

    git remote prune origin

  • 相关阅读:
    40.广搜练习:洪水
    40.广搜练习:洪水
    39.递推练习:   菲波那契数列(2)
    39.递推练习:   菲波那契数列(2)
    39.递推练习:   菲波那契数列(2)
    21世纪的信息化与20世纪的自动化
    一个文件夹就是一个信息系统
    团队的建设是部门管理目标的核心
    信息共享的另一种形式--复用
    如何工作体会
  • 原文地址:https://www.cnblogs.com/caohongchang/p/10962581.html
Copyright © 2011-2022 走看看