git的常规指令与操作
- 记录下来,为了让自己印象深刻点,当然还是多用比较实在
配置用户名和邮箱
git config --global user.name "xxx"
git config --global user.email "xxx"
初始化
git init
三个区域
- 工作区:
- 指的就是git管理后的文件,粗略的说就是项目文件夹
- 暂存区:
- 执行
git add .之后,文件从工作区添加到了暂存区。暂存区保存了下次将要提交的文件列表信息
- 执行
- 本地仓库:
- 执行
git commit -m '提交说明'之后,代码会被提交到仓库区。仓库区是 Git 中最重要的部分,代码只有提交到仓库,才会形成一次历史记录,即才会形成一个版本。
- 执行
将文件添加到暂存区
# 添加指定文件到暂存区
git add 文件名
# 以空格隔开可以一次 add 多个文件
git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
git add [dir] [file] [dir] [file] [file] ...
# 添加当前目录的所有文件到暂存区,包括子目录
git add .
提交文件到仓库
# 提交暂存区到仓库区
$ git commit -m [message]
# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
# 提交工作区和暂存区自上次commit之后的变化,直接到仓库区。
# 新文件,从未被Git管理过,是不能直接提交到仓库区的
$ git commit -a -m "提交日志"
撤销操作
# 恢复暂存区的指定文件到工作区
git checkout [file]
# 恢复暂存区的所有文件到工作区
git checkout .
# 恢复某个commit的指定文件到暂存区和工作区
git checkout [commit版本号] [file]
# 重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变
git reset [file]
# 重置暂存区与工作区,与上一次commit保持一致。该命令后不能加文件或文件夹
git reset --hard
回退历史与查看版本
# 首先使用git log 或 git log --oneline 查看提交记录,获取版本号。
# 回退全部文件到历史版本
git checkout 版本号
# 回退指定文件到历史的某个版本
git checkout 版本号 文件名 [文件名.....]
生成SSH密钥
ssh-keygen -t rsa -C "你的邮箱地址"
# 执行完这个命令之后,后面有一些询问,我们直接一路回车即可
Windows: C:\Users\用户名.ssh
mac: 你的用户名那个文件夹中。 按shift+Commend+. 可以显示隐藏文件,然后就可以看到 .ssh文件夹了
将本地仓库中的代码推送到远程仓库
- 创建一个
空的远程仓库 - 复制 ssh 地址
- 终端中执行
git remote add origin ssh地址,表示添加远程仓库地址到本地 - 首次推送
git push -u origin master,刷新一下远程仓库,看看是否推送成功了
用远程仓库如果有东西,就要先拉取
- 在首次推送前,需要先拉取远程仓库的代码,每次推送也要拉取,如果要冲突,要解决冲突
git pull origin master --rebase- 后续继续开发
分支
切换分支前,必须把当前分支的代码全部提交到本地仓库。
# 创建分支
git branch 分支名
# 切换分支到dev
git checkout 分支名
# 也可以创建并直接切换分支
git checkout -b 分支名
# 查看所有分支(本地分支)
git branch
# 查看所有分支(包括远程分支)
git branch -a
# 删除分支(需要先切换到其他分支,然后在执行删除)
git branch -d 分支名
# 创建并直接切换分支
git checkout -b dev
合并
- 分为 快进模式合并 和 合并模式合并
- 快进模式就是一个分支包含另一个分支的最新版本可以直接覆盖
- 合并模式就是各自分支有单独的提交,合并可能会产生冲突
# 切换到A分支
git checkout A
# 把B分支的代码合并到A分支
git merge B
如果有冲突 手动打开有冲突的文件,解决冲突,保存文件。(手动解决)
再次添加(add操作)提交(commit),即可完成合并。