• Git flow 的使用
  • Git 的基本命令
  • Git 的使用流程

Git flow 是一个利于多人协作的一种工作方式;

常用的分支分为 master , develop, release, feature , hotfix ,others,
在这里插入图片描述


多人协作工作模式一般是这样的:

首先,可以试图用git push origin branch-name推送自己的修改。
如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。


从这个方向入手, 了解Git的使用, 不是单纯的使用一些基本的命令,最好可以加以练手;

git status 可以查看仓库的当前状态; (如果已经提交过了的话,这个是没有任何的信息的)
还是使用git log 查看修改信息. git reflog , 可以查看更加详细的信息;
如何需要查看具体的,则是使用git diff <filename> (查看详细状态);

git log 查看最近的提交状态, 但是由于信息太过于杂乱,可以使用git log --pretty=oneline;
以及 git log --oneline
版本回退
使用git reset 可以进行版本的回退,回退上一个版本: git reset --hard HEAD^ (hard与soft的区别)HEAD~20 (默认是mixed)
如果后悔了可以使用 git reset --hard 数字 (数字为commit id) 可以使用git reflog 来进行查看找到相应的commit id

撤销修改
使用 git status 查看在那个状态
没有git add , 直接删除 ,或者使用 git checkout --<文件名> ,来撤销操作

可以分为git add 后 , 可以使用

  • git reset HEAD<文件名> git status 查看
  • 在使用git checkout --<文件名> 清除在工作区的记录

与 git commit 后

  • 这是需要使用版本回退来进行操作;
    在这里插入图片描述

分支管理的使用;(重点)

git log --graph --pretty=oneline --abbrev-commit查看线
git log -p 可以查看修改的部分 与git diff 差不多; git show ,同理
git log --pretty=format:"%h - %an, %ar : %s"
git log --stat


多人协作:

  • 首先git clone
    默认情况下只能看到master的分支 使用git branch 进行查看;
  • 在dev 分支上开发 , git checkout -b dev origin/dev ;
  • 修改好了 git add . , git commit -m"xx", git push origin dev , 就可以了
    (如果git push 失败, 则需要先 git pull下来最新的代码, )
    现根据提示 使用 git branch --set-upstream-to=origin/dev dev (重点)
  • 在进行git pull , 但是此时会出现merge失败
    这事解决的方法与解决冲突的时一样的 ???
    在这里插入图片描述
    解决冲突重点(多人协作)
  1. error: Your local changes to the following files would be overwritten by merge出现错误时:
    参考:https://www.jianshu.com/p/344dd08905a2
    解决方法

  1. 当需要放弃自己本地,选择pull 远端仓库时,

可以使用一下命令:

```
git fetch --all
git reset --hard origin/master  (分支)
git pull
```
  1. Merge branch 'dev' of gitee.com:
    解决方案:
    添加链接描述

  2. Updates were rejected because the tip of your current branch is behind
    冲突解决
    手动解决冲突问题
    ===================================
    写的比较好的文章:https://blog.csdn.net/u013374164/article/details/78833173

git在线练习使用 :https://oschina.gitee.io/learn-git-branching/

git pull ⇒ git fetch 与 git merge 的合并操作

git branch -v 可以查看相应分支commit_id

git book https://git-scm.com/book/zh/v2


2021 3/28

git stash 的使用

使用场景:

1 当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git
stash命令将修改的内容保存至堆栈区,然后顺利切换到hotfix分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。

2 由于疏忽,本应该在dev分支开发的内容,却在master上进行了开发,需要重新切回到dev分支上进行开发,可以用git
stash将内容保存至堆栈中,切回到dev分支后,再次恢复内容即可。 总的来说,git
stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。这也就是说,stash中的内容不仅仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。git
stash作用的范围包括工作区和暂存区中的内容,也就是说没有提交的内容都会保存至堆栈中。

使用方法:

git stash push -m ‘信息’
git stash pop

# 缓存当前工作区的内容到stashName, save 这个现在不怎么推荐用,图方便也能用
# -a|--all: 除了未跟踪的文件,其他变动的文件都会保存
# -u|--include-untracked:包括没有添加到暂存区的文件
git stash save stashName
git stash -u save stashName

# 现在基本推荐用 push,因为有 pop,语义上和维护上更清晰
# 上面有的参数,它也有,还有-m 来备注这个 stash 的大概情况
git stash push -m "更改了 xx" 

# 有保存那肯定也有取用的
# pop: 取会删除对应的保存记录
# apply: 取但保留记录
# 0就是--index,这个东西哪里来的呢?
git stash apply stash@{0}
git stash pop stash@{0}

# 查看stash 保存记录
# eg: stash@{0}: On dev: 测试
git stash list


# 只想删除暂存记录怎么办:
# clear : 清空所有 stash
# drop: 清除指定的 stash
git stash clear # 慎用!
git stash drop stash@{0}

# 想看 stash 做了什么改动,类似简化版的git diff
git stash show stash@{0}

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐