Git

关于合并

所有的合并都是合并的版本库(版本库的更新需要commit),每一个本地分支对应一个本地版本库,git fetch是将远程的所有分支拉取到本地临时版本库,git merge 链接别名/分支将所选择的远程版本库合并到本地所在分支对应的版本库,如果后面直接接的分支名字默认就是将本地分支版本库合并到本地所在分支对应的版本库 另外需要注意: 1.本地某分支版本库变化,本地工作区的代码自动变化 2.本地文件变化如果没有commit,那么此时切换分支,会将代码直接带到新的分支,如果commit了,代码不会带过去 3.解决完冲突之后,要将代码重新commit(也就是更新本地所在分支的版本库),这样本地版本库就没有冲突了,要不然会一直显示(master|MERGING),就是表示本地该分支的版本库是有冲突的 4.要时常commit,保证自己的版本库是最新的代码


laravel项目上传不会上传:.git .env node_modules vender . .. 等6个文件 可以在.gitignoe文件中设置


与本地相关的命令:

  1. git config --global user.name mingzi //设置名字github
  2. git config --global user.email youxiang//设置邮箱github
  3. git init //新建一个git客户端版本库 初始化
  4. git status //查看当前状态(只要有改动 那么文件名为红色 先add 然后commit)
  5. git add . //添加进客户端的暂存区
  6. git commit -m "注释" //提交到本地所在分支的版本库
  7. ----------------版本---------------------
  8. git log //查看版本日志
  9. git log --pretty=oneline //查看版本一行显示
  10. git reset --hard ^ //回退到上一个版本 上上个就是^^(是在工作区的改变)
  11. git reset --hard 版本id //回退到该版本id的版本(是在工作区的改变)
  12. git reflog //查看所有的操作日志(可以滚回去再滚回来)
  13. ----------------分支---------------------
  14. ***本地未提交不要切分支
  15. git branch //查看本地有哪些分支
  16. git branch 分支名 //添加分支
  17. git checkout 分支名 //切换分支
  18. git checkout -b 分支名 //创建并切换分支
  19. git branch -d 分支名 //删除本地分支

与远程服务器端相关的命令:

  1. 新建仓库:仓库名称 描述 Public 不选README
  2. git remote add origin(远程仓库的别名) https://github.com/LZY622/仓库名.git(远程仓库的真实连接) //建立本地与远程的连接
  3. git remote //查看本地与远程的链接的所有别名
  4. git remote rm origin //删除某个链接别名
  5. git push -u(第一次推的时候加之后就不需要了) origin(远程仓库别名) master(从本地分支名):master(到远程分支名) -f(一般不加意味强制推)//推到指定服务器上,如果此时所在分支名(a)与远程目标分支名(a)一致,可以只写一个分支名(表示从本地a分支推至远程a分支)
  6. git pull (-–allow-unrelated-histories origin master//拉下来服务器中的分支中的内容并合并(等于fetch + merge)
  7. git clone 仓库地址 //初始化克隆仓库里面的内容(在项目文件夹外面克隆)
  8. git clone -b 分支名仓库地址 // 克隆仓库分支
  9. git fetch 仓库别名//查看远程各个分支的状态并拉取到本地版本库中(如果是默认origin 可以省略)
  10. git merge 仓库别名/分支 //在版本库中合并代码
  11. git diff // 查看合并之后的冲突
  12. git reset --hard head //解决MERGING状态,如果报错这个意思是在.git目录下已经有一个index.lock文件夹存在了,只需要去这个目录下删了这个文件夹,然后再输入 git reset --hard head 就ok了

在本地a分支创建新分支 新建的分支有前分支的所有文件 并且版本库也跟a分支一样


生成公私钥:为了每次推到远程仓库的时候不输入账号密码

进入程序家目录看看是否已经有公钥(windows中c盘用户目录 linux中cd ~/.ssh)
ssh-keygen -t rsa -C "注释(邮箱)"//点3次空格,在家目录中出现.ssh文件夹,后缀.pub是公钥另一个是私钥,打开公钥文件复制 账号下拉菜单->setting->SSH and GPGkeys->New SSH key->title与项目名一致,粘贴公钥,添加

添加协作者

项目仓库->setting->collaborators(协作者)->搜索github用户名添加 对方收到邮件点击同意即可


上传是上传到远程 远程分支与本地分支无关,(合并分支是在版本库中的分支中合并),pull 是从远程拉下来 可以从远程任意分支中拉,拉在本地的版本库中的分支中进行自动合并


GitHub账号:LZY622 密码:liziyue147 阿里code账号:雅思殿廷教育 密码:


实际项目中开发流程(进哥版本)

  1. //(开始项目)
  2. 克隆项目
  3. git clone
  4. 切进目录
  5. 新建并切换一个分支dev
  6. git checkout -b dev
  7. //(在dev分支上进行开发)
  8. 开发一个阶段后
  9. 更新本地dev分支版本库
  10. git add .
  11. git commit -m ""(这次注释要让所有人看懂)
  12. 切到master分支
  13. git checkout master
  14. 合并本地dev版本库中的内容
  15. git merge dev
  16. 推至远程版本库分支
  17. git push origin master:shuaige
  18. 切回dev分支
  19. git checkout dev
  20. //(新一轮的开发)
  21. 拉取远程库的所有分支
  22. git fetch origin
  23. 合并远程master分支
  24. git merge origin/master
  25. 解决冲突
  26. git diff
  27. 更新本地dev分支版本库
  28. git add .
  29. git commit -m ""(此次注释自己看懂就好了)
  30. //(继续在dev分支上进行开发)
  31. ...