git拉取与提交
一、代码拉取
git fetch
和git pull
都可以拉取代码:
git fetch
是将远程主机的最新内容拉到本地,用户可以检查了以后再决定是否合并到当前分支中;
git pull
是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge
,这样做效率更高,但是多人协作开发的项目中容易出现代码冲突;
git fetch
:
//拉取远程主机(master)的全部内容到本地
git fetch ***
git fetch origin master //拉取特定分支的更新,例如拉取master分支
//取回更新后,会返回一个 FETCH_HEAD ,指的是某个分支在服务器上的最新状态,本地通过它查看刚取回的更新信息
git log -p FETCH_HEAD
// 检查后将拉取下来的最新内容合并到当前所在的分支中
git merge FETCH_HEAD
git pull
:
//直接拉取 pull相当fetch后立即merge
git pull
//拉取之前备份本地代码,避免产生冲突
git stash / git stash save 'save massge'
git pull
git stash pop
git stash clear
注:在未 add
之前才能执行stash
!!!
语法解释:
stash 保存和恢复工作进度:
git stash //保存当前工作进度,将工作区和暂存区恢复到修改之前。
git stash save message //作用同上,message为此次进度保存的说明。
git stash list //显示保存的工作进度列表,编号越小代表保存进度的时间越近。
git stash pop stash@{num} //恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
git stash apply stash@{num} //恢复工作进度到工作区且该工作进度可重复恢复,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}
git stash drop stash@{num} // 删除一条保存的工作进度,此命令的stash@{num}是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}
git stash clear // 删除所有保存的工作进度。
二、代码提交
git status //查看当前修改过的文件,决定需要提交哪些文件到本地git缓冲区中
git add . || git add -u || git add -A
git commit -m "提交注释"
git push //如果要指定提交的分支test: git push origin test
语法解释:
git add -A //提交所有变化
git add -u //提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . //提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
***常用缩写:
//git中一些选项解释:
-d
--delete:删除
-D
--delete --force的快捷键
-f
--force:强制
-m
--move:移动或重命名
-M
--move --force的快捷键
-r
--remote:远程
-A
--all:所有
-u
--update:所有
蜉蝣过山亦有风