创建git仓库及简单操作命令
1.把已有的项目代码纳入git管理
$ cd projectdir #projectdir项目代码所在的文件夹
$ git init
2.新建的项目直接使用git管理
$ cd dir #dir 项目将要放置的文件夹
$ git init project_name # 会在dir路径下创建和项目名称相同的文件夹
$ cd projectdir
3.git文件操作命令
$ git add filename #向git中添加文件,filename为要添加入git管控的文件名称
$ git add -u #添加所有文件
$ git reset HEAD #将暂存区文件恢复成和HEAD一致,全部文件
$ git reset HEAD filename #将暂存区文件恢复成和HEAD一致,filename 指定文件
$ git checkout -- filename #将工作区文件恢复成和HEAD一致,filename 指定文件
$ git rm filename #删除文件
$ git mv filename newname #文件重命名,filename->newname
$ git status #查看git文件状态
$ git commit -m 'comment' #向git中提交文件,comment:注释信息
$ git reset --hard commitId #消除最近几次的commit提交记录,至指定分commitID
$ git diff #比较暂存区和HEAD所含文件的差异
$ git diff -- filename #比较工作区和暂存区指定文件的差异,多个文件用“空格”隔开
$ git diff --cached/staged #比较工作区和暂存区所含文件的差异
$ git diff commitId1 commitId2 filename #比较两次提交的指定文件的差异
$ git log #查看git操作日志
$ git log -num#查看最近几次的git操作日志
$ git log --graph #查看日志树状图
$ git reset --hard #清空暂存区,不会破坏git的历史
$ gitk #打开图形界面工具,方便查看git版本变更历史
$ git branch -av #查看分支
4.本地仓库同步到github
$ git remote -v #查看远程版本库信息
$ git remote add githup <url> # 添加githup远程版本库
$ git fetch githup # 拉取远程版本库
$ git merge -h #查看合并帮助信息
$ git merge --allow-unrelated-histor #合并两个不相干的分支
$ git push originname #推送代码至指定分支
5.开发中临时加塞紧急任务解决方案
$ git stash #将当前工作区文件放入堆栈中
$ git stash list #查看堆栈中缓存列表
$ git stash apply #将工作区文件恢复,将之前存放入stash中的内容取出来且stash中的内容还存在
$ git stash pop #将工作区文件恢复,将之前存放入stash中的内容取出来并丢掉stash中的内容
6.指定不需要git管理的文件
*.name #name文件及文件夹下的文件git都不管控
*.name/ #name文件夹下的文件git不管控
在.gitignore文件中配置文件,文件名必须为.gitignore
7.分支管理命令
$ git checkout branchname #切换分支命令,需切换到工作路径下执行
$ git checkout -b branchname newbranchname #基于branchname创建新分支,并切换至新分支
$ git branch -d branchname #删除分支命令,若代码未merge,则不能删除
$ git branch -D branchname #删除分支命令,强制删除分支
8.提交记录修改
$ git commit -amend #对最新一次提交做 commit 修改
$ git rebase -i parentCommitId #对历史提交commit修改,parentCommitId,需要修改的commit的父commitID
1.进入新的界面,将需要修改记录的“pick”改为“reword/r”,保存并退出;
2.进入新的界面,添加新的message,保存并退出;
3.若要将多个分支合并至一个分支,则选择保留一个分支为“pick”,其他的“pick”修改为“squash/s”,保存并退出, 然后添加commit message
4.把间隔的几个commit整理成一个:
$ git rebase -i parentCommitId 进入rebase页面,将需要合并的commit放到一起;然后将合并commit的“pick”修改为“squash/s”: