git常用操作

1  拉去新分支
 (1)从远程拉取非master分支到本地  
     首先push master分支,然后执行下面命令拉去其他分支。
          git  checkout  远程分支名
 (2)从本地的某个分支上拉一个新的分支dev
    先切换到对应的分支上,然后执行git checkout -b dev
2 如果远程分支更新想更新到本地对应分支
   格式为:git  pull  <远程主机名>  <远程分支名>:<本地分支名>
   如果是远程分支与当前分支合并,可以省略本地分支名
3 本地分支重命名
   git branch -m oldName newName
4 上传分支
   (1)切换到要上传的分支上
   (2)git push 远程仓库名 上传的分支名
   注1:如果推送的分支在远程仓库中不存在则创建此分支,否则则更新分支
   注2:  修改前应该先检查自己的分支是不是最新的,如果不是可以先pull再修改再上传,如果想覆盖掉别人的进度,那么可以使用--force参数,但是要确保自己的操作是正确的。
5 删除分支
   必须先切换到其他分支后才能删除本分支。
    git branch -d 分支
   删除远程分支
    git push origin  --delete  分支名
6 提交修改或取消修改
  (1)保存当前修改到分支上
       首选IDEA中提供的一键commit操作,除此外还有命令行操作,具体的需要现将内容添加到暂存区然后再commit。
       usage1: git add ..
       usage2: git commit -m "..."
  (2)放弃在当前分支上的修改
      有两种方式,一种是直接放弃所有的修改,返回到前一次分支的保存状态,usage:git checkout . 除此外,还可以将本次没有提交的修改暂时存储到stash里面(git stash),尽管分支恢复到上一次的状态,但是本次的修改并没有丢失,如果想恢复到本次的修改,则使用git stash pop就能恢复。
7 关联与删除远程仓库
  (1)查看当前关联的远程仓库
       re
        git  remote  -v
  (2)添加远程仓库
     假设要关联的仓库地址为:address,可以自定义远程库name,则上传文件到远程库:
     git remote add name address
  (3)删除远程仓库
     git remote  remove ${name}
8 版本回退
  8.1 本地版本回退
  (1)提交记录查看
   git  log  查看提交记录
   git  log -n  查看最近n次的提交信息
  (2)回退版本
   git reset --hard  版本号前6位
  8.2 远程版本回退
   首先进行本地版本回退 
         git log
         git reset --hard 版本号前6位
   紧接着强制推送到远程分支进行版本回退
         git push -f
    注:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支。 
  8.3 公共版本回退
     解法1:公共版本回退的问题在于多人使用,以本地mater分支为例,有A、B两个人,做了几次提交,顺序为:A1-->A2-->B1,当A发现A2提交错误时,需要将整个代码回退到A1状态,则在A上可进行远程版本回退操作至本地和远程都为A1,但是对B来说,本地版本是B1相当于比远程origin超前两个版本,为了保持一致,应该从远程分支拉代码,并用远程该分支强制覆盖本地master分支,即:
     git reset  --hard origin/master
  解法2: 直接更新分支即可。
     git  pull  <远程主机名> <远程分支名>:<本地分支名>
9 合并分支
  合并分支时对同一代码的修改才冲突,不同代码的增加不会冲突,合并分支有两种情况:
  第一种是master不变,在master上拉取新分支,增加内容后合并到master上。
  合并步骤:
  (1)进入要合并的分支(如开发分支要合并到master,则进入master目录)
  (2)使用merge合并开发分支(merge 分支)
       git merge 要被合并的分支名
  (3)查看合并之后的状态
       git status
  (4)有冲突的话,通过IDE解决冲突。
      冲突解决完毕的标志是:mvn clean install -DskipTests编译通过
  (5)解决完冲突后,将冲突文件先提交到暂存区再push。
  第二种情况:master上在原位点改动,本地分支也在原位点改动,那么直接push是传不上去的,当前的方式是先pull,解决冲突后再push。具体的命令:
   git  pull  origin  分支名
   git status 查看冲突,解决完冲突后push
10 pull遇到错误:error:Your local changes to the follwing files would be overwritten by merge,如何解决?以合并远程分支时遇到此问题为例,其他场景可参照使用:
  解决的思路在于:是否想要保存本地修改,具体的:
  (1)保留本地修改
      git stash
      git pull origin xxx
      git stash pop
   其中,git stash用于将本地快照,然后git pull就能正常,pull完之后通过stash pop将本地的修改恢复,实际上等同于pull。
  (2)放弃本地修改
     直接将本地的状态恢复到上一个commit id,然后用远程的代码直接覆盖本地的代码就可以了,具体的:
     git reset --hard
     git pull origin xxx
11 .gitignore文件忽略不想传的文件
    文件作用:忽略不想上传的文件
    配置语法:(1)以"/"表示目录
                    (2)以"*"匹配多个字符
                    (3)以"?"匹配单个字符
                    (4)以"[]"包含单个字符的匹配列表
                    (5)以"!"表示不忽略匹配到的文件或目录
    匹配规则:该文件是按行从上到下进行规则匹配的。
   如:
12 快速判定java安装目录
    有时使用java命令时需要判断java所在目录,一步即可确定:
        ps aux | grep java
    获取java相关的所有程序就能知道java命令的目录
13 清空文件内容
   echo "" > file
14 代码Tag
    代码做标注的好处:tag标记的commit是不会变的
   (1)查看tag命令
      Usage:git tag
  (2)创建tag命令
      Usgae:git tag -a 版本号 -m "对版本的描述"
  (3)提交tag命令
      Usage:git  push  origin  tags
  (4)删除tag
    --删除本地tag    git  tag  -d  版本号
    --删除远程tag    git push origin  --delete  tag  v1.0
  检出标签  git  checkout <tagName>  其作用是进入commit的那一次分支记录,但是记录不可修改
 
  
 

 

posted @ 2020-04-30 09:05  FCity  阅读(164)  评论(0编辑  收藏  举报