zoukankan      html  css  js  c++  java
  • Git

    git常用命令
    add #添加文件内容至索引
    commit #记录变更到版本库
    status #显示工作区状态
    diff #显示提交之间、提交和工作区之间等的差异
    git log –-pretty=oneline #查看最近历史提交的版本信息
    git diff HEAD -- test.txt #命令可以查看工作区和版本库里面最新版本的区别
    bisect #通过二分查找定位引入 bug 的变更
    branch #列出、创建或删除分支
    checkout #检出一个分支或路径到工作区
    clone #克隆一个版本库到一个新目录
    fetch #从远程一个版本库下载库到本地
    grep #输出和模式匹配的行
    init #创建一个空的 Git 版本库或重新初始化一个已存在的版本库
    log #显示提交日志
    merge #合并两个或更多开发历史
    mv #移动或重命名一个文件、目录或符号链接
    pull #获取并合并另外的版本库或一个本地分支
    push #更新远程引用和相关的对象
    rebase #本地提交转移至更新后的上游分支中
    reset #重置当前HEAD到指定状态
    rm #从工作区和索引中删除文件
    show #显示各种类型的对象
    tag #创建、列出、删除或校验一个GPG签名的 tag 对象
    git push不会推送标签(tag),除非使用git push origin --tags
    git remote -v #查看远程库的信息
    stash #把当前工作区存藏起来
    git stash list #命令查看
    git stash apply stash@{0} #恢复,但是恢复后stash内容并不删除
    git stash pop stash@{0} #恢复的同时把stash内容也删了,需要使用git stash drop删除
    git checkout -b 新分支名 老分支名 #新建并检出分支

    把缓存区的数据修改撤销,重新放到工作区
    echo "123" > a.log
    git add a.log
    git status
    git reset HEAD a.log #把缓冲区的a.log撤销回工作区

    移除数据
    git add database
    git rm –cached database #将文件从git暂存区域的追踪列表移除(并不会删除当前工作目录内的数据文件)

    git add database
    git rm -f database #如果在删除之前数据文件已经被放入到暂存区域的话,担心你误删未提交的文件而报错信息,可追加强制删除-f参数。
    git checkout -- database #误删除恢复,因为版本库还有,可以把误删除的文件恢复到最新版本

    Git移动数据
    git mv readme.txt test.txt #git如果要修改文件名称,则使用git mv命令
    git status #查看状态发现下次提交会有一个改名操作
    git commit -m “changed name” #提交到git版本仓库

    Git还原数据
    echo “Git is a version control system” >> readme.txt
    git add readme.txt #添加至暂存区
    git commit -m “introduction software” #提交至git版本仓库
    git log --pretty=oneline #提交的历史信息
    git reset -–hard HEAD^ #还原历史提交版本上一次,退回上上个版本HEAD^^,退回上10个版本HEAD~10
    cat readme.txt #查看文件内容(已经还原)
    ···Create new branch is linux。。。
    回退到上一次的版本,例如pull更新完,需要回滚pull前的状态,执行:git reflog git reset --hard

    [root@git-node1 xubusi]# git reflog #查看未来历史更新点
    2caa209 HEAD@{0}: reset: moving to HEAD^
    4bf5b29 HEAD@{1}: commit: introduction software
    2caa209 HEAD@{2}: commit: changed the file name

    git reset --hard 4bf5b29 #找到历史还原点的SHA-1值后,就可以还原(值不写全,系统会自动匹配)
    如是只是想把某个文件内容还原,就不必这么麻烦,直接用git checkout命令就可以的,先写一段话
    git checkout -- readme.txt
    这其中是有一套规则,如果暂存区中有该文件,则直接从暂存区恢复,如果暂存区没有该文件,则将还原成最近一次文件提交时的快照。

    git创建与合并分支
    因为创建、合并和删除分支非常快,使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
    git checkout -b test #创建test分支,并切换到test分支
    git branch test #创建test分支
    git branch -d test #删除test分支
    git branch -D test #强制删除分支
    git branch -m test test_new #修改分支名字,把test改成test_new
    git branch #查看所有分支,*为当前分支
    git checkout master #切换到master分支
    git checkout -f master #强制切换分支
    git merge test #命令用于合并指定分支到当前分支,合并后,就可以查看到test分支提交的内容了
    git log --graph --pretty=oneline --abbrev-commit 查看分支合并的情况
    git log --no-merges 过滤合并分支提交日志Merge branch

    git更新远程分支库和推送远程分支库的方法
    git pull origin dev(远端分支) #更新下载远端dev分支(默认更新到当前所在分支)
    git push origin cby:dev #推送自己本地cby分支到远端dev分支
    git push origin master:dev #推送自己本地master分支到远端dev分支(需先切换master分支把远端dev分支更新下来,才能这样推,否则报错)
    git push origin master #默认把本地master分支推送到远端master分支上
    git push --delete origin test #删除远程test分支
    git pull origin master(远端分支名):release(本地分支名) 把当前分支和release分支 更新下载远端最新的master

    手动建立追踪关系
    git branch --set-upstream dev origin/dev #指定本地dev分支追踪origin/dev分支
    git push -u origin master #将本地分支指定到远程仓库的master上
    git fetch origin 远端分支名:新建本地分支名 #把远程分支拉到本地新分支上,不会遇到冲突

    过滤标签
    git show v0.9|sed -rn 's#commit (.*)$#1#gp'
    git reset --hard v0.9 #可以直接使用标签还原历史,默认指定commit

    排错

    1 [root@dev opt]# git clone https://github.com/s3fs-fuse/s3fs-fuse.git /opt/s3fs/
    2 Cloning into '/opt/s3fs'...
    3 fatal: unable to access 'https://github.com/s3fs-fuse/s3fs-fuse.git/': Peer reports incompatible or unsupported protocol version.
    解决:yum update -y nss curl libcurl

     

    你好
  • 相关阅读:
    Python 发送邮件
    python3 根据时间获取本月一号和月末日期
    docker搭建MediaWiki
    linux下僵尸进程的发现与处理
    rootkit后门检查工具RKHunter
    CentOS7安装Node_exporter(二进制)
    用JS获取地址栏参数的方法(超级简单)
    php读取目录及子目录下所有文件名的方法
    css input[type=file] 样式美化,input上传按钮美化
    APACHE REWRITE ? 匹配问号的写法
  • 原文地址:https://www.cnblogs.com/cuibaiyi/p/8677666.html
Copyright © 2011-2022 走看看