git的多人合作
首先:电脑要配置ssh来打通本地和线上git的通道
git基础
工作区 : 在电脑中能看到的目录
暂存区 :文件修改后且执行了 git add 指令之后,到暂存区stage
版本库 :工作区有一个隐藏的.git文件里面存放着你的各个分支这个不算工作区,执行git commit -m ''之后
远程版本库 : 从本地版本库push到远程仓库,从远程拉去文件git pull
配置
配置用户名和邮箱
git config --global user.name ''
git config --global user.email ''
配置ssh
windows :
点击鼠标右键选中git bash ,执行以下命令 > ssh-keygen -t rsa -C '你的邮箱'
打开用户默认目录,找到 .ssh隐藏文件下面的 id_rsa.pub文件,复制其中的内容
github
找到设置,点击进去
点击new新增一个将你刚刚复制的秘钥粘贴进来尽可以啦
点击完成后需要验证密码,验证成功后即为配置完成
gitee、gitlab操作基本相同再此不在赘述。
Mac
生成 key文件之后的操作与之前相同
git的基本操作
git config -l
初始化版本库 git init ()
克隆代码 git clone 要克隆的地址
拉去代码 git pull origin 分支名称 (相当于git fetch + git merge )
从其他的分支合并到当前分支 git merge 分支名称
对比文件的不同 git diff 文件名称
添加文件 git add 文件名 | .
提交文件 git commit -m(提交暂存区文件) '备注信息' 或者 git commit -am ''(提交跟踪过的文件)
查看状态 git status 可以用于查看
查看版本日志 git log 查看每次所提交过的日志文件 git log --pretty=oneline
查看某个提交修改的内容 git show 修改的id
查看某个文件的修改纪录 git log -p 文件名
分支
git branch -a 查看所有分支
git branch -r 远程分支
git branch -l 本地分支
创建分支 git branch 分支名
切换分支 git checkout 分支名
创建并切换分支 git checkout -b 分支名
不能删除当前分支 删除本地分支 git branch -d 分支名
删除远程分支 git push orgin --delete 名字
合并分支代码 先切换的master git checkout master
合并分支的代码 git merge 分支名 适用于管理自己的代码
推送本地分支代码到远程分支 git push origin 分支名
如果远程没有分支 可以用一下指令 git push --set-upstream origin 分支名
版本的回退
如果工作区写了,但是并没有提交到暂存区(其实就是没有通过git add)
git checkout -- 文件名 把本次修改的代码回退回去(相当于ctrl+Z的操作)
如果写了代码并执行了git add 想回到git add 之前,内容还能看得见
git reset HEAD 文件名
如果文件被误删之后想要恢复文件
git checkout HEAD -- 文件名
既然add 了也提交了
git reset --hart 分支名 回到修改之前的的代码
git reset --soft 分支名 回到commit之前的代码
git reset --mixed 分支名 回到add之前 --mixed可以省略
解决冲突
手动解决,根据编辑器提示手动解决冲突。
团队合作
组长:
说先git init 初始化仓库
vue create myapp 创建项目
git add .
git commit -m '项目的初始版本'
建立远程仓库
执行以上两条指令(进行关联)
邀请组员
组员:
直接将项目克隆下来(ssh的克隆) git clone 地址
测试代码可用性
git checkout -b 分支名 创建并切换到新的分支
代码编写完毕之后 git add . git commit -m '描述' git push origin 分支名 提交到远程
组长: git checkout -b 分支名 创建新分支开发项目。。。
组长 : 合并代码
-
git checkout master --> git merge 分支名 或者是 git pull origin 分支名
-
git pull origin 组员代码分支 (合并组员代码并解决冲突)
-
git add .
-
git commit commit -m '标明今天合并代码的描述'
-
git push origin master
-
git cheakout 自己的分支名 (切记)