整理一些常用的git命令
1.配置
配置提交人姓名 --------- git config --global user.name -----name姓名
配置提交人邮箱 ---------- git config --global user.email ---email邮箱
查看配置信息 --------- git config --list
删除配置 --------- git config --global --unset user.name/user.email
2.缓存区
添加缓存区 git add . --------一次性全部添加 git add 文件列表-----指定添加
缓存区文件提交到仓库 ----------git commit -m "提交信息"(没有提交信息不可以提交)
查看提交记录 ---------- git log(按q退出)
缓存区的文件覆盖工作目录的文件 ----------- git checkout 文件名
删除缓存区中的文件(不会删除工作目录文件) ----------------- git rm --cached 文件名
直接将所有文件都删除 ----------- 可以执行命令 git rm --f 文件名
(慎用)
缓存区返回上一次修改的版本 ---------- git reset 文件名
从提交记录中恢复 ------------ git reset --hard 提交记录ID(如果不写提交id默认最新)
------------ 会覆盖缓存区和工作目录
------------- 恢复后,该commitID之后的提交记录都会被删除
------------- 加了--hard会直接将文件删除,不会保留,如果需要保留文件,就不要加--hard
3.暂存区
文件放到暂存区 git stash
-------- 没有被添加到缓存区中的文件也可以添加到暂存区中
从暂存区恢复文件 git stash pop
查看暂存区中的列表 git stash list
4.分支
分支的分类:
主分支(master)
开发分支(develop)
测试分支(test)
功能分支(feature)
BUG分支(bug1001)
指令:
查看当前文件状态 -------- git status
查看当前分支状态: ------- git branch
创建分支 git branch 分支名
创建分支并转入 git branch -b 分支名
切换分支 git checkout 分支名
合并分支 git merge 来源分支名
删除分支 git branch -d 分支名
git branch -D 强制删除
获取远程的新分支 git fetch
查看当前远程分支和本地状态: ------- git branch -a (带origin的就是远程分支)
5.远程仓库
初始化 git init
----- 会出现master分支
创建本地分支并切换 git checkout -b
添加远程仓库地址和分支名 git push -u 远程仓库地址 远程分支名
添加远程仓库地址别名 git remote add 别名(origin) 远程仓库地址
查看关联: git remote -v
查看本地分支和远程仓库的映射关系 git branch -vv
拉取远程仓库中的最新代码 git pull 远程仓库地址 远程分支名
提交推送远程仓库 git push
------------------ 多人开发 推送前先git pull拉取 => 再git push推送
避免冲突
克隆远程仓库 git clone 远程仓库地址 项目名
6.Git忽略清单(重要)
在执行git add .
命令的时候,可以忽略这些文件
文件名 ----------- .gitignore(固定不变)
-------------- 这个文件一般都放在项目跟目录下
仓库的详细说明文件 README.md(固定不变,大小写可以忽略)
7.冲突
如何解决冲突?
第一种方式:先commit,然后push,发现push不上去时,就是有冲突了,这时,先pull一下,然后手动调整好冲突文件,然后再add、commit、push(这种方式不推荐,会产生过多了垃圾版本记录)
第二种方式:在commit之前,先pull,如果pull不下来,说明有冲突,这时,我们将当前状态保存至暂存区中,这时仓库已经是干净的了,然后再pull,然后再git stash pop弹出暂存区中的状态,然后再手动整好冲突文件,然后再add、commit、push(推荐使用这种方式,没有垃圾版本记录)
如何发送pull request? ----------- 先fork别人的
-------pull request-----------
什么是pull request?
就是向其他团队的远程仓库push代码的途径
如何发送pull request?流程是怎样的?
1. 进入别人的远程仓库页面,fork,fork后,会复制一份到自己GitHub中
2. clone刚复制的远程仓库到本地进行开发
3. add,commit,push
4. 发送pull request
5. 原拥有者收到请求后审核代码
6. 原拥有者接受请求,合并代码,也可以拒绝请求
8.版本回退(回滚)
git reset --hard HEAD^ #回退到上个版本
git reset --hard HEAD~3 #回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id #退到/进到 指定commit_id
git push origin HEAD --force #强制提交并推送远程