Git基本操作命令

  •  
  • GIT: git是一种分布式版本控制系统,与之相对应的是CVS和SVN等集中式版本版本控制系统
  • $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

 

创建版本库(window10)

  1. 新建文件,打开git bash
    mkdir learn_git
    cd leanr_git
    
  2. git init  创建一个空的仓库
    git init
    
    git add file_name
    git commit -m "一些信息"
    
    

     

回退版本

  1. 在Git中,用HEAD表示当前版本,也就是最新的提交
  2. 上一个版本就是HEAD^,上上一个版本就是HEAD^^,依次类推,往上100个版本就是:HEAD~100

  3. 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  4. 回退到上一个版本:
     

    git reset --hard HEAD^
  5. git log 再看的时候已经看不到最近的一次提交了,如果还想再回去,需要找到之前的commit id,然后使用命令:
     

     git reset --hard 00d02dd14e3c918220c811ef25f4268ac7ac7af8

     

  6. Git提供了一个命令git reflog用来记录你的每一次命令, 可以找到之前的命令(要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本)

  7. git reset --hard commit_id, 其中--hard其实就是git版本库的指针,指向哪里,文件就会更新到哪里

  8. git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支,git commit -m ""之后,暂存区就没有内容了,全部提交到master上了。

  9. 命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销

  10. 用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区

  11. 删除文件的时候使用git rm file_name 然后git commit -m "提交信息"

远程仓库

  1. 申请githug账户
  2. 在windown系统中配置ssh 秘钥:
    cd 到该路径下可以看到秘钥的路径
    id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
    ssh-keygen -t rsa -C "youremail@example.com"
    
    cd ~/.ssh
    pwd
  3.  在github中新建远程仓库(依次点击右上角的加号,new repository, 输入远端仓库的名称),点击新建
  4. 将本地仓库和远端仓库关联起来:
    git remote add origin https://github.com/qinliuhuan/learn_git_qlh.git
    git push -u origin master

     

  5. 我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
     
    git push origin master
  6. 往github上提交代码的时候每次都需要输入用户名和密码问题:
    在添加远程库的时候使用了https的方式。。所以每次都要用https的方式push到远程库,速度慢
    
    查看使用的传输协议:
    
    git remote -v
    重新设置成ssh的方式:
    
    git remote rm origin
    git remote add origin git@github.com:username/repository.git
    git push -u origin master
    
    
    注意:username就是你github的名称,可以直接从远端仓库上面去拷贝(clone and download,选择使用sshkey就可以)

     

  7. 创建新的分支
     git checkout -b dev
    Switched to a new branch 'dev'
    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
    
    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'
    然后,用git branch命令查看当前分支:
    
    $ git branch
    * dev
      master
    
    在dev分支上进行开发,然后添加,提交
    git add file_name
    git commit -m "informatio"
    
    再切回到master分支,但是此时之前的修改不见了
    我们把dev分支的工作成果合并到master分支上:git merge dev
    git merge命令用于合并指定分支到当前分支
    
    合并完成之后,直接在master分支提交到远端仓库: git push origin master

     

  8. 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

    解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

    git log --graph命令可以看到分支合并图

  9. 准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward
    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

    $ git merge --no-ff -m "merge with no-ff" dev
  10. 正在dev开发的过程中,有bug要修改的时候,先将dev分支中的内容git stash保存起来,然后git chekcout master切换到主分支,再新建一个bug分支,修改完bug ,git add  , git commit -m   然后切回到master 分支,git checkout master ,然后git merge --no-ff -m ""  git push origin master 提交,更新,然后再切换到dev分支,git stash pop 将之前的开发恢复出来,git add git commit  ,再回到master分支 git merge --no-ff -m ""再次提交,git push origin master

  11. git branch -D <name>强行删除分支

  12. git rebase操作
    rebase操作可以把本地未push的分叉提交历史整理成直线;
    rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值