git 协作基本流程:分布式代码管理
- 中央存储库
- master 与 develop ,所有人写代码时同步develop分支。
- 功能完善后,合并到master功能,打(三级)版本号,大功能,小功能(特性),bug修复。
- 远程服务器master+dev,本地同步远程分支
基本协作模式
- git pull拉取,同步到本地,基于本地dev,合并到本地dev同步到远程dev。
- git branch --list ,基于dev 切分支git checkout -b, 写代码,每天都要提交一次,
- git add 文件名【add的将来是要提交地】
- git commit -m ‘文字’ 【生成一个节点,修复了什么bug】
- 合并代码首先要切回 ,git checkout dev, git merge a
- 同步到远程git push dev。
不推荐可视化工具,不透明
另一套流程:
pull request
解决冲突:删掉不对的代码
工作区干净,执行git add 加入暂存区,告诉他咱修改了,git merge --continue。之后再 git push
查看 Git 信息
# 查看系统配置
$ git config --list
# 查看用户配置
$ cat ~/.gitconfig
# 查看当前项目的 git 配置
$ cat .git/config
# 查看暂存区的文件
$ git ls-files
# 查看本地 git 命令历史
$ git reflog
# 查看所有 git 命令
$ git --help -a
# 查看当前 HEAD 指向
$ cat .git/HEAD
# git 中 D 向下翻一行 F 向下翻页 B 向上翻页 Q 退出
# 查看提交历史
$ git log --oneline
--grep="关键字"
--graph
--all
--author "username"
--reverse
-num
-p
--before= 1 day/1 week/1 "2019-06-06"
--after= "2019-06-06"
--stat
--abbrev-commit
--pretty=format:"xxx"
# oneline -> 将日志记录一行一行的显示
# grep="关键字" -> 查找日志记录中(commit提交时的注释)与关键字有关的记录
# graph -> 记录图形化显示 !!!
# all -> 将所有记录都详细的显示出来
# author "username" -> 查找这个作者提交的记录
# reverse -> commit 提交记录顺序翻转
# before -> 查找规定的时间(如:1天/1周)之前的记录
# num -> git log -10 显示最近10次提交 !!!
# stat -> 显示每次更新的文件修改统计信息,会列出具体文件列表 !!!
# abbrev-commit -> 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符 !!!
# pretty=format:"xxx" -> 可以定制要显示的记录格式 !!!
# p -> 显示每次提交所引入的差异(按 补丁 的格式输出)!!!
Git 常用命令
# 查看工作区和暂存区的状态
$ git status
# 将工作区的文件提交到暂存区
$ git add .
# 提交到本地仓库
$ git commit -m "本次提交说明"
# add和commit的合并,便捷写法(未追踪的文件无法直接提交到暂存区/本地仓库)
$ git commit -am "本次提交说明"
# 将本地分支和远程分支进行关联
$ git push -u origin branchName
# 将本地仓库的文件推送到远程分支
$ git push
# 拉取远程分支的代码
$ git pull origin branchName
# 合并分支
$ git merge branchName
# 查看本地拥有哪些分支
$ git branch
# 查看所有分支(包括远程分支和本地分支)
$ git branch -a
# 切换分支
$ git checkout branchName
# 临时将工作区文件的修改保存至堆栈中
$ git stash
# 将之前保存至堆栈中的文件取出来
$ git stash pop
git checkout # 创建分支
git status #查看状态
git checkout -b #创建并切换
git commit #提交到仓库
git diff
git add
git clean -fdx
git fetch --prune
git pull --ff-only
git branch -D
git push
git merge
git rm
git rebase
git reset
git revert
git push origin :yourbranch