Git开发使用方案

一.git的基本使用
0.知识点:
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
版本库中,包含一个暂存区stage和Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

0.Linux操作命令大全
cat ~/.ssh/id_rsa.pub (查看内容)
clip < ~/.ssh/id_rsa.pub (把内容复制到粘贴板)
cd F:\work (切换)
pwd (查看当前目录,确保目录名不包含中文)

1.配置阶段
(0)ignore文件
在仓库跟目录下创建名称为".gitignore"的文件,写入不需要的文件夹名或文件
gen
bin
.gradle

  (1)git config(配置用户名和邮件地址)
     git config --global user.name  'liujian'
     git config --global user.email 'liujian@webull.com'
     
  (2).生成秘钥
    ssh-keygen -t rsa -C "abcd@efgh.com" //邮箱同上
     
  (3).查看秘钥并提交
    cat ~/.ssh/id_rsa.pub
    到github网页中登陆自己的账号,然后再account setting中,找到SSH KEY讲复制的密钥加入(需要再次输入github的密码)    
    
  (4).检测是否连接上github
     ssh git@github.com
     
2.git init(创建新的仓库)
    cd f
    mkdir hello
    cd hello
    git init    
    touch hello.java //生成hello.java
     

3.提交操作到本地版本库
  (1)git add(将文件修改添加到暂存区)
     git add hello.java
    
  (2)git commit(提交更改,将暂存区的所有内容提交到当前分支,默认提交到master分支)
     git commit -m 'liujian commit'
    
          
4.查看操作
  (1).git status(查看工作区文件的当前状态)
      git status-s (加-s以获得简单的结果输出)   
      ??:表示未添加
      A: 表示已添加,且文件无改动
      AM:文件在我们将它添加到缓存之后又有改动
   
  (2).git diff    查看工作区改变内容(add之前)
      git diff -- cached  比较git add和git commit之间的区别
      git diff hello.java  查看hello.java工作区改变内容(add之前)
      git diff HEAD -- hello.java > f:\xx.txt
      跟git show一样,查看某一个提交的提交内容,HEAD表示最新一次commit也可以改成某一次的commitId 
      >符号把当前内容拷贝到xx.txt文件中
      
      git diff origin/2720(查看远程库中2720分支与当前分支的不同的地方)
      
  (3).git show (最新的commit)    
      git show commitId(提交id)
      查看某一个提交的提交内容(与上一个提交的不同地方)
      
  (4).git log(查看提交信息:提交commit_id,author,提交date)
      
  (5).git reflog(查看git命令历史)   
  
      
5.撤销命令:
   (1)add前(丢弃工作区的修改):checkout
     git checkout -- hello.java(把hello.java在工作区的修改全部撤销,--很重要)
     两种情况:
        ①把hello.java自修改后还没有放到暂存区,撤销修改就回到和版本库一模一样的状态
        ②把hello.java修改后放到缓存区后,又做了修改,未add,撤销修改就回到添加到缓存区后的状态
       
   (2)add后(撤销掉暂存区的修改,重新回到工作区):reset
      git reset HEAD hello.java  
                        
   (3)commit后:                     
      版本回退:
       git log(查看提交的版本信息,每一个信息对应一个commit_id)
       git reset --hard commit_id  
       git reset --hard HEAD^(HEAD^表示reset到上一次提交)
                 --mixed(默认的方式,回退到某个版本,保留本地代码,回退commit和index信息)
                 --soft(回退到某个版本,只回退了commit的信息,不会恢复到index file一级)
                 --hard(彻底回退到某个版本,本地源码也会变为上一个版本的内容)
   (4)push后:git revert 
       git revert HEAD                  撤销前一次 commit
       git revert HEAD^                 撤销前前一次 commit
       git revert commitid
       git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去
                       
   (5)文件删除:git rm(将文件从版本库和工作区中删除,并且需要git commit将文件从服务端删除)
       git rm hello.java   
       git rm --cached hello.java (工作目录保留该文件,删除版本库中的内容)
    
  
6.远程操作:
  (1)git remote add origin git@github.com:superLjian/test.git
     把一个已有的本地仓库与远程服务器关联,远程库的名字就是origin
     
  (2)git clone [url](拷贝一个git项目到本地)
     git clone git@github.com:superLjian/simplegit.git
      
  (3)git push
     git push origin master(提交本地master分支到远程master分支,远程若没有master会自动创建一个master分支) 
     git push -u origin master(-u参数,把本地的master分支跟远程的master分支关联起来)                                  
     git push origin master_bendi:master (把本地的master_bendi分支中的内容push到远程的master分支)
     git push origin master:null (null删除远程的master分支)
  (4)git fetch(下拉远程分支)
     git fetch origin master:master_bendi
     git merge master_bendi(合并master_bendi分支到当前分支)
         
  (4)git pull origin master(下拉远程分支并与本地分支合并)
     git pull origin master:master_bendi
     把远程主机名为origin的master分支pull到本地的master_bendi分支
      
  (5)查看远程库信息
     git remote
     git remote -v(-v显示更详细的信息)
      
9.解决冲突(建议使用as执行该步骤)  
     pull命令或者merge命令都可能存在冲突的可能,这个时候需要修改文件解决冲突后再提交       
     
10.标签管理
   (1)当前版本,打一个新的标签
      git tag v1.0
   (2)查看所有的标签
      git tag
   (3)给之前的版本,打一个新的标签
      git log(查看获取到提交版本对应的commit id)
      git tag v0.9 commitid
   (4)查看标签信息
      git show v1.0
   (5)删除标签
      git tag -d v1.0  
      

 8.分支管理
 (0)分支管理 
    基本原则:master分支应该是非常稳定的,用来发布新版本,平时不在上面干活
             dev分支是不稳定的,干活都在dev分支上,到版本发布时,再把dev分支合并到master上,在master分支上发布1.0版本
    
 (1)创建分支并切换(继续先commit)
    git checkout -b dev
    (-b表示创建并切换)
      git branch dev(创建分支dev,并把当前分支的内容拷贝到分支dev)
      git checkout dev(切换当前分支为dev)
    
    创建本地分支与远程分支之间的联系
      git checkout -b dev origin/master  (在本地创建分支dev连接服务器的分支master)
      git checkout dev -track origin /master (在本地创建分支dev连接服务器的分支master,-track可以改写成-t)
      git branch --set-upstream mydevv origin/2720 (建立本地分支与远程分支之间的关联) 
     
 (2)查看当前和远程分支
    git branch
    git branch -r
    git branch -vv (查看本地分支,并与远程库的分支的对应情况,ahead表示提前,behind落后)
    git remote show origin(查看远程库origin里的资源)
    git remote (远程库信息)
   
 (3)切回到master分支
    git checkout master
     
 (4)合并分支
    git merge dev(如果当前分支是master,把dev分支中的内容合并到master分支) 
     
 (5)删除分支
    git branch -d dev
    git branch -D dev(强制删除一个dev分支,某些不能删除的情况下)   
    
 (6)git stash
    git stash:
    git stash pop:从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。可能有多个Stash的情况,pop会从最近的一个stash中读取内容并恢复
    git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    git stash clear:清空Git栈
     
    当前工作区内容已被修改,但是并未完成。这时候需要checkout到另外一个分支。可是我又不想提交目前的修改,因为修改没有完成。但是,
    不提交的话,又没有办法checkout到前面的分支。此时用Git Stash就相当于备份工作区了。然后在Checkout过去修改,就能够达到保存当前工作区,
    并及时恢复的作用。 
    
    使用'git stash'就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,                                             
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值