一、git基本操作流程
git是分布式的版本管理工具,也就是每个分支都是完整的代码,可以相互合并。合代码时的基本操作流程是:
1、git stash ,将当前修改保存到git栈中;
2、git pull,从仓库中拉取最新代码;
3、git stash pop, 将步骤1保存的修改从git栈中弹出,合并代码,并解决冲突;
4、git add . ,将所有修改文件加入追踪;
5、git commit -m "修改文件1",提交修改,并标注说明,即是将追踪文件加入暂存区;
6、git push origin master ,将修改代码推到中央仓库master分支上;
二、git常用操作命令
1、git status ,查看修改;
2、git branch ,查看当前分支;
3、git branch -r ,查看远程分支;
4、git stash list ,列出堆栈中的内容;
5、git branch 新分支,新建分支;
6、git checkout 分支,切换分支;
7、git commit --amend ,合并到上一次提交, 也可以称为打补丁;
8、git checkout -b 分支 origin/分支 , 在本地切换到远程分支;
9、git push origin HEAD:refs/for/分支(如alpha),推分支到远程分支上;
10、git log , 查看日志;
11、git remote -v ,查看远程仓库的网址;
12、git clone url ,下载远程代码
13、git merge 分支,合并分支
三、git加入追踪
1、git add -A , 所有文件加入追踪;
2、git add . , 将除删除文件外的文件加入追踪;
3、git add -u ,将除新增文件外的文件加入追踪;
上述操作也可以指定文件操作,多个文件名间用空格隔开,如git add 文件名;
四、git回退操作
1、git checkout 文件名 , 将修改的文件还原到最近修改前的状态(用暂存区的文件覆盖本地文件,修改会丢失),多个文件名间用空格隔开;
1、git reset 文件名 , 将指加入追踪的文件还原到未追踪前的状态(修改不会丢失,只针对加入追踪的文件),多个文件名间用空格隔开;
2、git reset HEAD^ , 还原到上一次文件修改完时的状态(这时修改还在,只是没有加入追踪);
3、git reset HEAD^2 ,还原到前两次即是文件修改完时的状态(这时修改还在,只是没有加入追踪),2表示次数,也可为3,为4等;
4、git reset --soft HEAD^ , 还原到上一次提交暂存区前的状态(这时修改还在,但加入了追踪);
5、git reset --soft HEAD^2 ,还原到前两次提交暂存区前的状态(这时修改还在,但加入了追踪),2表示次数,也可为3,为4等;
6、git reset --hard HEAD^ , 还原到上一次提交状态(这时修改会丢失);
7、git reset --hard HEAD^2 ,还原到前两次提交状态(这时修改会丢失),2表示次数,也可为3,为4等;
注意,上述回退节点,HEAD^,HEAD^2这些,也可以通过git log 查看操作历史记录,
获取历史提交点commit,然后可以回退到指定提交点,如git reset 460bae36c7ded51fb1ef0e14c5b80861a0a2bba6
五、git中作用相反的命令(或者说是补救措施)
1、git add <path>与git reset <path>
即是将指定文件加入追踪,与从追踪中移出文件
2、git commit -m "修改1" 与 git reset --soft HEAD^
即是提交修改到暂存区,与从暂存区移出;
3、git reset --hard HEAD^ 与 git reset --hard 分支@{1}
即是回退到上一次修改,与从回退到上一次修改后再回退回来;