git的各种指令
一.git的配置
1.创建版本库
- 使用git bash进入需要管理的目录,在该目录下使用git init就可以将其设置为可以管理的仓库
注意:该操作会在目录下生成一个.git的隐藏目录,用来跟踪管理版本库
2.为版本库绑定用户名和Email地址
git config user.name "xxx" —— 绑定用户名
git config user.email "xxx@xxx.com" —— 绑定email地址
若要绑定全局,则在config 后面加上 --global即可
二.文件的增删改
1.上传文件
git add —— 将文件添加至本地仓库中
git commit -m"xxx" —— 将文件提交至远程仓库,“xxx”为版本更新的说明内容,利用好可以方便以后的版本控制
2.版本回退
git log —— 查看版本历史记录
如果嫌信息太杂,可加上 --pretty=oneline实现单行输出
git reset --hard 版本号—— 实现版本回退
版本号可以不写全,git会自动补全
git reflog —— 返回命令历史记录
3.修改管理
git status —— 查看仓库状态
git add + git commit —— 实现版本修改
git reset HEAD <文件名> —— 将暂存区的修改回退到工作区
git checkout --文件名 —— 将工作区的修改全部撤销
4.删除文件
git rm 文件名 + git commit —— 删除文件并修改暂存区
若删除错了,可用git checkout一键还原
三.远程仓库
1.创建SSH KEY
ssh-keygen -t rsa -C "xxx@xxx.com" —— 在目录下创建ssh key
- 登录github,打开“Account settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意标题,在Key文本框里粘贴主目录下.ssh/id_rsa.pub文件的内容
创建ssh key可以让github识别推送是自己的,而不是别人的,意味着只有自己才能推送
2.添加远程库
- 在GitHub上创建一个新的仓库
git remote add origin git@github.com:账户名/仓库名.git
origin 是远程库名,默认
git push origin master—— 将本地库的内容推送到远程库
git clone git@github.com:账户名/仓库 —— 克隆远程库到本地
四.分支管理
1.创建分支
git branch 分支名 —— 创建分支/查看分支
git checkout 分支名 —— 切换
git checkout -b 分支名 —— 创建并切换分支名
git merge 分支名 —— 将分支修改的内容合并到master分支上
git branch -d 分支名 —— 将分支删除
git switch -c 分支名 —— 创建并切换分支名(新)
git switch 分支名 —— 切换分支
2.冲突
- 当分支与master分支同时修改一项内容造成冲突时,git会发出警告,必须手动解决冲突后才能解决
3.分支管理策略
git在合并分支时,会进入fast foward模式,在此模式下删除分支,分支的信息将会被全部删除
git merge --no-ff 分支名 —— 禁用ff模式
4.暂存工作分支(用于中途修bug)
git stash —— 将当前工作分支暂时存储
git stash apply —— 恢复当前存储的工作
git stash drop —— 删除stash里存储的工作
git stash pop —— 恢复并删除
git stash list —— 查看暂存工作
git cherry-pick —— 将当前分支的修改作用在master上,与合并区分
5.强行丢弃分支
git branch -D 分支名 —— 强行删除未合并的分支
6.协作
git push origin 分支名 —— 推送分支
git pull —— 将最新提交从远程抓取到本地
git branch --set-upstream 远程分支名 分支名 —— 将本地分支与远程分支连接
当多人同时对一个分支修改并发生冲突时,可以先用git pull将远程修抓取后,再手动解决并重新push
7.骚操作
git rebase —— 将分叉的分支历史归成一条直线
五.标签管理
1.创建标签
git tag v1.0 —— 给当前分支打一个标签
git show v1.0 —— 查看该标签修改的信息
2.标签管理
git tag -d v1.0 —— 删除标签
git push 仓库 v1.0 —— 推送标签至远程仓库
git push 仓库 :refs/tags/v1.0 —— 删除远程库中的标签
六.自定义
git config --global alias.st status —— 自定义指令
- .gitignore文件下:
*.txt可过滤txt文件,此时git不会将这些文件提交至远程
七.多人协作流程
git clone 仓库地址 —— 克隆远端仓库到本地
git remote add upstream 仓库地址 —— 添加主仓的远程地址
git remote -v —— 查看仓库状态
git fetch upstream —— 拉取主仓库文件
git checkout master —— 切换到master
git merge upstream/master ——合并远程分支
git checkout -b dev ——创建新分支
git merge master ——合并新分支
- 接下来是add commit push三部曲了