git文件提交大致流程:
本地文件( git add 文件名) → 暂存区(git commit -m 提交信息)→ 本地仓库(git push 远程仓库地址(复制的) 分支名称(要推送的分支名称)) → 远程仓库(github)
git操作详细流程:
1、先配置提交人姓名和邮箱信息
(1)设置用户名和邮箱
git config --global user.name 姓名
git config --global user.email 邮箱
(2)修改用户名和邮箱
git config --global --replace-all user.name 姓名
git config --global --replace-all user.email 邮箱
(3)git config --list 查询信息是否配置好
tip:此操作,环境配置的时候操作一次即可
2、项目初始化 — 推送远程仓库步骤
(1)初始化(在指定的目标文件夹下 — 项目存放的地方)
- 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here
- 指令:git init
- 作用:创建git仓库(.git文件夹)
tip:此操作,每个新项目开始时执行一次即可
(2)git add 文件名(添加到暂存区)
- 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here
- 指令:git add 文件名 — 提交指定的文件
- 指令:git add . — 提交所有的修改的文件(常用)
- 作用:把修改过的文件添加到暂存区
tip:git status 查看文件状态(文件是否提交到暂存区 红色表示没有 绿色表示已提交)
(3)git commit -m 提交信息
- 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here
- 指令:git commit -m 提交信息
- 作用:把文件提交到git仓库( 提交信息可以反应这个文件内容的,注意,这个会提交暂存区的所有文件,如果有的文件不需要提交,先删除)
tip:git log 查看提交到git仓库的记录(有id,恢复版本的时候需要)
git reflog 更全更详细
(
可以查看所有分支的所有操作记录信息,包括已经被删除的 commit 记录和 reset 的操作
(4)从本地仓库提交到远程仓库(github)
注意:团队开发需要共享数据是,设置远程仓库才有意义,如果是一个人做项目,那么就没必要设置远程仓库(公共仓库)
① 本地仓库创建 在本地文件夹里 git init 创建 —— 第2(1)步
② 远程仓库在github上创建
③ 复制 远程仓库地址
④ 将本地仓库推送到远程仓库
- 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here
- 指令:git push 远程仓库地址(复制的) 分支名称(要推送的分支名称)
- 作用:团队项目,数据共享
tip:① master一般是主分支,我们开发都是在其他分支,最后会合并到主分支,所有提交的时候要注意分支切换;
② 如果你的分支切换好了,直接git push 仓库地址即可,
③ 如果你在master分支,把文件提交到其他分支,那就需要跟着写分支名称,git push 远程仓库地址(复制的) 分支名称(要推送的分支名称)
3、远程仓库起别名
(1)修改远程仓库名称
- 指令:git remote add origin(别名,自定义,可以取其他的) 远程仓库地址(复制的)
- 作用:推送到远程仓库的时候,就不需要复制地址了()
tip:origin我们取的名字,等同于远程仓库的地址
(2)远程仓库别名 之 git push
① git push origin
- 指令:git push origin 分支名称
- 作用:推送到远程仓库的时候,就不需要复制地址了(只需要 git push origin 分支名称)
② git push -u
- 指令:git push -u origin 分支名称
- 作用:推送到远程仓库的时候,就不需要复制地址了(只需要 git push)
(3)git push origin 和 git push -u 区别
- git push origin:将当前分支推送到origin主机的对应分支;如果当前分支只有一个追踪分支,那么主机名都可以省略。
- git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。
- git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
4、例子
程序B 克隆A的进行修改然推送回去
①克隆程序员A的远程仓库
git clone 仓库地址(复制)
②将修改好的文件推送到程序员A的远程仓库
首先把修改好的文件 提交到暂存区 然后在提交到git仓库中
然后在推送到程序员A的远程仓库(必须程序员A在github上把程序员B设置成团队开发成员,然后程序员A把程序员B的账户名添加上去,然后程序员A把邀请链接发送给程序B,程序员B登录github把邀请链接复制在地址栏,点击同意,然后就可以把修改好的推送到程序员A的远程仓库)
程序员A将最新的仓库文件 拉到本地
git pull 远程仓库地址 分支名称
注意:git clone 是克隆别人的文件 自己没有本地仓库也没事
git pull 是拉取 建立在自己的仓库之上
如果本地仓库的文件版本没有远程仓库的版本新,是推送不上去的,
5、分支介绍
主分支:第一次向git仓库提交是自动产生的 master
开发分支:基于主分支创建 login
功能分支:基于开发分支创建 ,一般都是在功能分支上进行修改
6、分支的基本操作:
① 查看分支 git branch (前面哪有五角星 就说明咋哪个分支上 也可以看后面的括号)
② 创建分支(在哪个分支操作,就是在哪个分支上创建分支)
git branch 分支名称
③ 切换分支(切换分支之前,当前分支上的文件一定要提交到git仓库中,否则没提交的文件会出现在切换后的分支里)
git checkout 分支名称
④ 合并分支(要合并个哪个分支就先切换到哪个分支(例如:login开发分支合并到master主分支,我们就先切换到master主分支),合并后,原来的分支(login)依然存在)
git merge 要合并的分支名称
⑤ 删除分支 (不能再本分支删除本分支,必须先切换到其他分支)
git branch -d 分支名称 (分支被合并后才允许被删除,这是Git对分支的保护,怕git仓库的文件丢失)
git branch -D 强制删除(没有合并就删除的操作)
⑥ 暂时保存更改 (因为切换分支之前,必须把当前分支工作全部提交,但是如果还没完成当前分支工作,又不想提交,但是又需要切换到其他分支,就可以用下面方法)
先保存起来,分支临时切换 临时转向其他工作
临时存储 git stash
恢复 git stash pop (在哪个分支恢复,就会在哪个分支,所以恢复钱一定要清楚再哪个分支)
7、其他操作:
(1)恢复记录 用暂存区文件 覆盖 需要修改的本地目录的文件
git checkout 文件名 暂存区覆盖目录文件(目录去文件修改后,恢复成原来的版本)
(2)删除暂存区的文件
git rm --cached 要删除的文件名
(3)用git仓库文件 覆盖 暂存区和工作目录中的文件 (相当于恢复原来的文件版本)
git rest --hard commitID (commitID id名可以直接复制)
注意:如果用第一次提交到git仓库的文件进行覆盖和恢复,那后面提交到git仓库的文件就会被删除,暂存区和本地目录下如果是后面建的文件会被删除,修改的也会被恢复,
8、ssh免登录
公钥:保存在github的账户中
私钥:保存在客户端
原理:当客户端进行push的时候,会携带私钥,远程服务器就会去比对是否匹配,如果匹配,那么push成功
① 生成秘钥 利用ssh-keygen 生成一对秘钥 生成的密钥在C:\Users\当前用户名称.ssh 文件夹里面
② 在githu中添加公钥
在电脑c盘里找到id_rsa.pub文件,复制里面的内容,这个就是公钥,然后到github上,点击头像 → 选择settings(设置选项) → 右侧选择SSH and GPG keys →
在key下面的文本框里面粘贴复制的内容(公钥) → 最后点击Add SSH key(添加)完成
③ 本地利用push命令进行提交即可,git会默认帮我们携带私钥,在提交的过程中,它会自动去匹配服务器上的公钥和客户端的私钥,如果匹配成功,那么就能提交,如果失败,不能提交(总结:本地仓库提交到远程仓库的时候,就不用在输入登录名和密码了,它会自动匹配)
9、Git忽略清单
生成忽略名单:直接在代码编辑器里面新建文件,文件名就是: .gitignore
作用:将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件,不会提交到暂存区,也就不会提交到仓库。
10、github仓库的详细说明
可以在github直接设置,设置详细说明,可以方便知道这个仓库是放什么的。
11、git命令大全
git config --global user.name //配置姓名
git config --global user.email //配置邮箱
git config --list //查看配置信息
git init //初始化本地仓库
git status //查看文件状态
git add 文件名 //添加某个文件到暂存区,如果写 . 代表当前文件夹下所有的文件、
git commit -m 日志说明 //提交到本地仓库
git log //查看提交记录
git reflog 更全更详细
git checkout 文件名 //撤销,让暂存区文件覆盖工作区间文件
git rm --cached 文件名 //在暂存区移除相应文件
git reset --hard 提交ID //恢复到指定版本
git branch //查看分支
git branch develop //创建分支
git checkout 分支名 //切换分支
git merge //合并分支
git branch -d 分支名称 //删除分支
git clone 地址 //克隆远程仓库
git push 地址 分支名 //往服务器推送
git pull 地址 //将服务器代码拉取到本地
git remote add 名称 地址 //给地址取别名
git push -u origin master //-u的参数让git记录信息,下次只需要 git push 就能进行提交
ssh-keygen //生成一对密钥
版权归原作者 八月际遇 所有, 如有侵权,请联系我们删除。