**
一、git工作中常用命令
#新增文件的命令:
git add file或者git add
#提交文件的命令:
git commit -m或者git commit -a
#查看工作去状况:
git status -s
#拉取合并远程分支的操作:
git fetch/git merge或者git pull
#查看提交记录命令:
git reflog
#下载远程代码命令:
git clone [url]
#新建一个分支,并切换到该分支:
git checkout -b [branch]
#查看修改的文件:
git status
#添加当前目录的所有文件到暂存区:
git add
#提交暂存区到仓库区:
git commit -m[message]
#取回远程仓库的变化,并与本地分支合并:
git pull [remote]
#上传本地指定分支到远程仓库:git push [remote]
#删除分支:
git branch -d [branch-name]
#删除远程分支:git push origin --delete [branch-name] 或
git branch -dr [remote/branch]
#暂时将未提交的变化移除,稍后再移入
git stash 或
git stash pop
二、面试常问的问题
1、问题:公共类或公共方法,两人同时修改同一个文件,一前一后提交就会报冲突错误。
解决办法:IDE一般会对比本地文件和远程分支
文件,远程分支上文件的内容手工修改到本地文件,然后再提交冲突文件与远程分支文件一致,这样才可以消除冲突,然后再提交自己修改的部分。特别要注意下,修改本地冲突文件使其与远程仓库的文件保持一致后,需要提交后才能消除冲突,否则无法继续提交。必要时可与同事交流,消除冲突。
(1) 通过git stash命令,把工作区的修改提交到栈区;
目的:是保存工作区的修改; 通过git
(2) pull命令,拉取远程分支上的代码并合并到本地分支;
目的:消除冲突; 通过git stash
(3)pop命令,把保存在栈区的修改部分合并到最新的工作空间中;
2.问题:git fetch和git pull命令之间的区别
git fetch branch是把名为branch的远程分支拉取到本地;
而git pull branch是在fetch的基础上,把branch分支与当前分支进行merge;因此pull = fetch + merge。
3.git的整个原理图
Workspace:开发者工作区
Index / Stage:暂存区/缓存区
Repository:仓库区(或本地仓库)
Remote:远程仓库