美文网首页
git cmd ---记录

git cmd ---记录

作者: 幸宇 | 来源:发表于2019-08-06 10:39 被阅读0次
发展历程:

2002年以前,志愿者们通过diff方式发给linus,linus通过手工合并代码
2002 - 2005 之间,linus用BitKeeper管理代码
2005年之后 linus花了两周时间用C写了一个分布式版本控制系统,一个月之内 Linux系统的源码由Git管理
2008年 Github网站上线

区别:

CVS、SVN :集中式版本控制体统
Git:分布式版本控制体统
收费的集中式版本控制体统:ClearCase 特点:安装比windows还大,运行比蜗牛还慢

GIt下载

如果你用Debian或者Ubuntu Linux 安装git:sudo apt-get install git
老一点的 安装:sudo apt-get install git-core,原因:之前有软件叫GIT(SNU Interactive Tools),所以GIT叫git-core。由于Git名气太大,就把GUn Intreactive Tools 改成gnuit,git-core 正式改为git
设置

    git config user.name /  user.email     查看本地name&email
    git  config --global user.name "Your  Name"
    git  config --global user.email  "Your  Email"
    原因:Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址
命令
    pwd  显示当前目录
    git init 将文件夹变成Git可以管理的仓库
    ls  -ah  没有看到.git文件 -- 这个目录默认是隐藏的
    git log   查看日志
    git log --pertty=oneline               查看日志 只输出commit版本号和commit注释
    git log --pertty=oneline --abbrev-commit       查看日志 只输出commit版本号和commit注释的7位ID
    git  reset --hard HEAD^              回退到上一个版本
    git  reset --hard 版本号               回退到某个版本
    git reflog                                      记录每一次命令  回退某个版本号但是不知道版本id的时候可用    记录了你的每一次命令
    git diff HEAD  --  做修改文件   查看工作区和版本库里面最新版本的区别
    git checkout -- 文件名                 让文件回到最近一次add或commit时的状态
    git reset HEAD 文件                   撤销add 撤销暂存区的修改
    rm  文件名                                  删除添加的文件
    git checkout --  文件名               恢复已删除的文件,因为版本库里面还有,只是删除了目录中的文件
    ssh-keygen -t rsa -C "youremail@example.com"   在github创建SSH Key 你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的
    git remote add origin 远端项目地址                               将本地git和远端的仓库进行关联
    git push -u origin master                                                -u:因为远程仓库是空的,所以加上-u参数,git不但会把本地的master分支内容推送到远程新的master分支,还会把本地master和远程master分支关联起来,在以后的推送或者拉取就可以简化命令
    git log --graph                                                                 查看分支的合并图
    git log --graph --pretty=oneline --abbrev-commit     只输出commit版本号和commit注释的分支情况  更一目了然
    git merge --no-ff -m "注释文案"  合并分支                   禁用Fast forword合并,会生成一个新的commit
    
    git stash                         将当前工作现场存储起来,方便去先修改bug
    git stash list       查看
    git stash apply     恢复,但是stash内容并不删除
    git stash drop                 删除stash内容
    git stash pop                 恢复并把stash内容删除
    git  stash apply stash@{0}    恢复指定stash
    
    git branch -d 分支名      删除分支
    git branch -D 分支名  强制删除分支
    
    git remote -v                   origin抓取和推送的地址,如果没有推送权限,看不到push的地址
标签(tag)
    Git标签虽然是版本库的快照,但其实它就是指向某个commit的指针,创建和删除标签都是瞬间完成的
    git tag                           查看所有标签
    git tag <name>            新建一个标签
    git show <tagname>   查看标签信息
    git tag <tagname>  <commit-id>                                            某次提交需要打tag
    git tag -a <tagname>  -m  "说明文案" <commit-id>              创建带有说明的标签    -a:指定标签名  -m:指定说明文字
    git tag -d <tagname>                                                                删除本地标签
    git push origin --tags                                                                推送全部未推送过的本地标签
    git push origin <tagname>                                                       推送本地标签
删除远程标签
    git tag -d <tagname>                                先将本地标签删除
    git push origin :refs/tags/<tagname>       删除一个远程标签
修改远程仓库
    git remote rm origin         删除远程现有仓库
    git  remote add origin 路径   添加仓库
    git  remote -v   查看远程仓库
协议
    ssh:   git://
    https:https://
    ps:https速度慢,每次推送都需要输入口令
备注
    HEAD  当前版本
    HEAD^    上一个版本  ....  以此类推

Q:
如果本地有对应远程分支

git branch branch_nama

如果本地没有对应远程分支

git fetch origin
git checkout -t origin/remote_branch_name
切换分支 git checkout branch_name

Q1:

Pull is not possible because you have unmerged files.

解决:

1.pull会使用git merge导致冲突,需要将冲突的文件resolve掉 git add -u, git commit之后才能成功pull.

2.如果想放弃本地的文件修改,可以使用git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull.
注意:

git merge会形成MERGE-HEAD(FETCH-HEAD) 。git push会形成HEAD这样的引用。HEAD代表本地最近成功push后形成的引用。

Q#########################
拉取远程分支并创建本地分支
1.git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
采用此种方法建立的本地分支会和远程分支建立映射关系。

2.git fetch origin 远程分支名x:本地分支名x
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
采用此种方法建立的本地分支不会和远程分支建立映射关系

建立映射关系:

   git branch --set-upstream-to=origin/分支名

删除分支:

    git branch -D 分支名

新建分支:

    git checkout -b 分支名

合并分支:

    git merge 分支名

拉取远程项目,新建本地分支并跟踪:
1、git clone 远程项目地址
2、新建本地分支并提交:

git checkout -b dbg_lichen_star

3、把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):

 git push origin dbg_lichen_star:dbg_lichen_star

4、建立当前分支与远程分支的映射关系:

git branch --set-upstream-to origin/dbg_lichen_star

得到结果如下:
Branch dbg_lichen_star set up to track...
5、查看当前本地分支与远程分支的映射关系结果:

git branch -vv

相关文章

  • git cmd ---记录

    发展历程: 2002年以前,志愿者们通过diff方式发给linus,linus通过手工合并代码2002 - 200...

  • Git使用教程之本地仓库使用命令

    cmd-git: 查看是否安装git 设置全局属性,开始命令打开git CMD 输入:$ git config -...

  • 几种脚本命令的认识

    git-bash & git-cmd shell、cmd、dos 参考博客地址

  • 关联github

    Git GUI:可视化图形界面 Git CMD:cmd命令行界面。(windows风格) Git Bash:一个封...

  • Git使用

    Git GUI:可视化图形界面 Git CMD:cmd命令行界面。(windows风格) Git Bash:一个封...

  • git 日常指令

    window 下 git 下载 下载安装完之后,就可以去启动Git cmd 启动Git cmd 1. 配置 ssh...

  • window10 git Androidstudio路径配置

    下载git 默认Android配置git path:C:\Program Files\Git\cmd\git.ex...

  • git cmd

    GitHub Commands git 常用命令 注册 SSH key 以便git bash 可以push req...

  • git使用方法

    1.先确定本地是否存在Git CMD 2.接着打开Git CMD然后在命令行中输入 git config --gl...

  • git windows环境变量设置

    痛点:因为某些原因,我需要在cmd中使用git。然卵,cmd无法识别git。怎么办呢? 从git官网下载windo...

网友评论

      本文标题:git cmd ---记录

      本文链接:https://www.haomeiwen.com/subject/seqidctx.html