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”:
over