git的一些操作

一、分支管理

1. 创建与合并分支
  • 一些操作
git checkout -b dev         # 创建并切换到`dev`分支 

git branch dev              # 这两句的效果与上面的一句等同(选择一种)
git checkout dev

git branch                  # 查看当前分支,当前分支会标记`*`

git add .                   # 提交当前目录下的全部修改
git commit -m "branch test"

git checkout master         # 切回 `master` 分支

git merge dev               # 合并`dev`到`master`分支

git branch -d dev           # 删除`dev`分支
  • 总结
git branch                  # 查看分支
git branch <name>           # 创建分支
git checkout <name>         # 切换分支
git checkout -b <name>      # 创建+切换分支
git merge <name>            # 合并某分支到当前分支
git branch -d <name>        # 删除分支
2. 分支管理策略
  • 合并分支的时候,如果可能,git会用 Fast forward模式,这种模式下,会丢掉分支信息
  • 如果禁用Fast forward 模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
git merge --no-ff m "merge with no-ff" dev  # 使用 `--no-ff` 参数表示禁用 `Fast forward`
3. feature 分支
git branch -d <name>
git branch -D <name>    # 丢弃一个没有被合并过的分支

二、其它

git checkout .              # 删除之前的操作  
git clean -f                # 删除文件

git clean: 用来从工作目录中删除所有没有 tracked 过的文件


(1) git clean 经常和 git reset --hard 一起结合使用,reset只影响被track过的文件,所以需要用clean来删除没有 track 过的文件,结合着两个命令能让工作目录完全回到一个指定的 commit 的状态
(2) git clean -n 提示有哪些文件会被删除,但不会真正的删除文件,只是一个提醒

(3) git clean -f 删除当前目录下所有没有 track 过的文件,不会删除 .gitignore 文件里面指定的文件夹和文件,不管这些文件有没有被 track 过

(3) git clean -f `path` 删除指定路径下没有被 track 过的文件

(4) git clean -df 删除当前目录下没有被 track 过的文件和文件夹

(5) git clean -xf 删除当前目录下所有没有被 track 过的文件,不管它是否是 .gitignore 文件里面指定的文件夹和文件

(6) git reset --hard 和 git clean -f,结合使用能让工作目录完全回退到最近一次 commit 的

三、工作遇到的问题及解决方案

问题:编译之后经常会多出一些文件,此时如果想要切换分支的话,提示会覆盖之前要切换的分支,此时要怎么处理呢?

解决方案:

  • 如果想要保留这些编译文件,可以git add .git commit -m "描述信息" 进行提交,然后再切分支
  • 如果不想要保留这些文件,可以进行下面的操作
git add .
git commit -m "描述信息"
git log                     # 查看版本信息
git reset --hard <版本号>    # 回退到某个指定的版本号
git status                  # 查看状态
git checkout <分支名称>      # 切换分支

四、工作中用到的 git 操作

1. 开发阶段
(1) git checkout master (开发时需要先切到 master 分支,在 master 分支下创建新分支)
(2) git pull (创建新分支前先拉取远程的最新代码)
(3) git checkout -b feature-xxx (创建并切换到 feature-xxx 分支)
(4) git add . 
(5) git commit -m '描述' 
(6) git fetch origin 
(7) git merge origin/master
(8) git push origin feature-xxx
2. 测试阶段
(1) git status
(2) git add .
(3) git commit -m '描述'
(4) git checkout develop
(5) git pull
(6) git merge origin/feature-xxx (git merge feature-xxx)
(7) git push origin develop
3. 上线阶段
(1) git checkout feature-xxx
(2) node ./build.js xxx -p (生产编译)
(3) git add .
(4) git commit -m '描述'
(5) git fetch origin
(6) git merge origin/master
(7) git push origin feature-xxx 
4. 删除分支
(1) git push origin --delete feature-xxx  删除远程分支
(2) git branch -d feature-xxx 删除本地分支

五、rebase 操作

  • 目的:合并多个 commit
  • 操作:
git rebase -i 版本号   #(不需要合并的最近的版本号)

注意:

1. 如果出现合并冲突,可能还需要手动修改,修改完 `git add .` 后 `git rebase --continue`

2. 撤销合并 `git rebase --abort`

转载于:https://www.cnblogs.com/let423/p/10963043.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值