Git实战(多人协作工作流程)
Posted 结构化思维wz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git实战(多人协作工作流程)相关的知识,希望对你有一定的参考价值。
Git实战
进入公司一般情况下第一件事都是给你的git账号分配一个权限,然后让你看项目。
Git常用命令回顾
配置用户信息
-
查看用户信息
git config --list // 查看所有 git config user.name //查看用户名
-
配置全局信息
git config --global user.name 'wz' git config --global user.email '463745021@qq.com'
基本操作
查看文件状态
git status
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
创建仓库
1️⃣git init
初始化仓库
2️⃣git clone
拷贝一份远程仓库,也就是下载一个项目。
git clone [url]
git clone url newname
提交与修改
1️⃣ git add
添加文件到暂存区
git add [file1] [file2] ... //指定文件
git add [dir] //指定目录
git add . //所有文件
2️⃣ git diff
比较文件的不同(工作区与暂存区的差异)
git diff [file]
git diff --cached [file]
git diff [first-branch]...[second-branch]
3️⃣git commit
提交暂存区到本地仓库
git commit -m [message]
git commit [file1] [file2] ... -m [message]
git commit -a //跳过 git add 这一步
4️⃣git reset
回退
git reset [--soft | --mixed | --hard] [HEAD]
-
–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
-
–soft 参数用于回退到某个版本
-
–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
**注意:**谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
-
HEAD 说明: HEAD 表示当前版本 HEAD^ 上一个版本 HEAD^^ 上上一个版本 HEAD^^^ 上上上一个版本 以此类推... 可以使用 ~数字表示 HEAD~0 表示当前版本 HEAD~1 上一个版本 HEAD^2 上上一个版本 HEAD^3 上上上一个版本 以此类推... git reset HEAD git reset HEAD 命令用于取消已缓存的内容。
5️⃣git rm
删除文件
6️⃣git mv
移动或重命名
提交日志
1️⃣ git log
查看历史提交记录
2️⃣ git blame <file>
- 以列表形式查看指定文件的历史修改记录。
远程操作
1️⃣git remote
远程仓库操作
$ git clone https://gitee.com/y_project/RuoYi-Vue.git
Cloning into 'RuoYi-Vue'...
remote: Enumerating objects: 10119, done.
remote: Total 10119 (delta 0), reused 0 (delta 0), pack-reused 10119
Receiving objects: 100% (10119/10119), 2.92 MiB | 590.00 KiB/s, done.
Resolving deltas: 100% (5121/5121), done.
$ cd RuoYi-Vue
$ git remote -v //显示所有远程仓库
origin https://gitee.com/y_project/RuoYi-Vue.git (fetch)
origin https://gitee.com/y_project/RuoYi-Vue.git (push)
origin 为远程地址的别名。
显示某个远程仓库的信息:
git remote show [remote]
添加远程版本库:
git remote add [本地版本库] [url]
# 提交到 Github
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git
$ git push -u origin master
其他命令:
git remote rm name # 删除远程仓库
git remote rename old_name new_name # 修改仓库名
2️⃣git fetch
从远程获取代码库
该命令执行完后需要执行 git merge 远程分支到你所在的分支。
从远端仓库提取数据并尝试合并到当前分支:
git merge
该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支。
假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行:
git fetch [alias]
git fetch origin //在本地更新修改
以上命令告诉 Git 去获取它有你没有的数据,然后你可以执行:
git merge [alias]/[branch]
git merge origin/master //master分支已经被更新,将更新同步到本地
以上命令将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。
3️⃣ git pull
下载远程代码并合并
git pull <远程主机名> <远程分支名>:<本地分支名>
# 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
git pull origin master:brantest
# 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin master
4️⃣git push
上传远程代码并合并
git push <远程主机名> <本地分支名>:<远程分支名>
$ git push origin master:master
# 如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:
git push --force origin master
#删除主机的分支可以使用 --delete 参数
git push origin --delete master
Git分支管理
几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。
查看分支命令:
git branch //查看本地分支
git barnch -r //查看远程分支
git branch -a //查看所有分支
创建分支命令:
git branch 分支名
切换分支命令:
git checkout 分支名
使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下
合并分支命令:
git merge
把新建的分支push到远端
git push origin 分支名
删除分支
git branch -d 分支名
Git实战
1.多人协作工作流程
2.实战总结
程序员版:
- 克隆远程仓库 —>
git clone url
- 选择到需要的分支—>
git checkout 分支名
- 新建一个自己的分支—>
git branch 分支名
- 切换到自己的分支 —>
git checkout 分支名
- 编码编码…—>
......
- 提交到本地仓库 —>
git add . git commit -m '提交信息'
- (防止冲突多pull)把分支的代码提交到要求的分支 ---->
git checkout dev git merge 本地分支
- 把要求的分支推送到远程 —>
git push
以上是关于Git实战(多人协作工作流程)的主要内容,如果未能解决你的问题,请参考以下文章