GitHub 官网对于 git 使用的示例
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/kawendiyu/vue_mall.git
git push -u origin main
# …or push an existing repository from the command line
git remote add origin https://github.com/kawendiyu/vue_mall.git
git branch -M main
git push -u origin main
# …or import code from another repository
# You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
简单使用 Git + GitHub
GitHub 端操作
- 登陆
- 创建远程仓库
- 手动复制远程仓库连接地址,一般就是:
https://github.com/用户名/库名.git
有了这个远程仓库的地址,我们有两种玩法。
Git 端操作
push 本地工程到 GitHub
-
在本地已有工程的根目录下,执行
git init
,创建本地仓库 -
为当前本地仓库添加远程仓库的地址,执行
git remote add [自定义远程仓库的别名] [远程地址]
之后,查看当前本地仓库连接的远程地址别名:
git remote -v
-
执行
git add .
,添加所有文件到暂存区 -
执行
git commit -m "本次提交的概述"
,提交暂存区文件到本地仓库 -
执行
git push
,推送本地仓库到远程仓库git push [远程仓库的别名] [某个本地分支] #(push某个分支到远程分支)
git push # push当前分支到远程仓库的同名分支
git push -u [远程仓库的别名] [本地分支] # -u表示新建一个远程仓库分支,名字和本地分支相同
克隆 GitHub 上的工程
执行 git clone [远程仓库地址]
,会把远程仓库的东西全部clone到当前路径
clone 操作的执行效果是:
- 完整的把远程仓库下载到本地
- 自动创建 clone 的远程仓库的地址别名为: origin
- 自动初始化本地仓库
当然我们也可以手动执行起别名和本地仓库初始化
GitHub团队成员邀请
- 当前登录的GitHub账号发出邀请(主人)
-
Git 本地 clone下别人的文件,并修改后,若是想 push 到远程仓库(客人)
条件是:你是远程仓库的所有者并登录GitHub账号;或者你被邀请成为团队成员。
所以在push时登陆自己的GitHub账号,会检验当前账号有没有权限
从远程仓库拉取工程
git fetch [远程仓库地址别名] [远程分支名]
git merge [远程仓库地址别名/远程分支名]
git pull [远程仓库地址别名] [远程分支名]
区别:
- fetch只会获取远程仓库中的文件,并不会覆盖本地库中的文件;
- merge会使用从远程仓库获取的文件作为本地库文件;
- pull = fetch+merge。
fetch 用于查看从远程仓库获取的文件内容,决定之后再merge,
fetch 的文件查看:git check out orgin/main
,切换分支进行查看
解决 push 冲突
冲突发生原因:团队的不同成员修改了同一版本的文件,有人先进行了push,而有人后进行push,后push会失败。
简言之就是:如果不是基于 GitHub 远程仓库的最新版所做的修改, 不能push。
解决办法:
-
后push的人必须先从远程仓库pull下来最新的版本,
-
最新版本的文件会与本地版本的文件合并,文件中会生成特殊符号来标识差异内容
-
修改本地文件,并再次push,push不要带文件名
git add filename git commit -m "resolve conflict"
GitHub跨团队协作
不同于团队成员邀请,团队以外人员只能操作远程仓库的副本,不能直接push到团队的远程仓库
首先需要两个账号,团队Team、个人A
操作流程:
- A使用自己的账号,访问Team的远程仓库,点击fork,该操作会拷贝团队的远程仓库副本到自己的远程仓库
- A本地Git 下载刚才从Team fork的远程仓库,在本地修改后,push到自己的远程仓库
- A发起pull request
- 团队账号接收pull request
- 对话
- 审核代码
- 合并代码
SSH密钥登陆
我们在进行push的时候,总是需要输入GitHub的账号+密码,使用SSH登陆可以简化push
Git在推送
- 进入当前用户的家目录
$ cd ~
- 删除ssh 目录(如果有的话)
$ rm -rvf .ssh
- 运行命令生成.ssh 密钥目录
$ ssh-keygen -t rsa -C xxxxxxxxxxx@qq.com
[注意: 这里-C 这个参数是大写的 C]
-
进入.ssh 目录查看文件列表
$ cd .ssh $ ll
-
查看 id_rsa.pub 文件内容,并复制 id_rsa.pub 文件内容
$ cat id_rsa.pu
-
登录 GitHub, 点击用户头像→Settings→SSH and GPG keys
- New SSH Key
- 输入复制的密钥信息
- 回到 Git bash 创建远程地址别名
git remote add origin_ssh git@github.com:atguigu2018ybuq/huashan.git - 推送文件进行测试