关于git常用命令
配置
(global是全局配置,如果不设置global则仅仅是对当前项目的设置)
git comfig --global user.name “name”
git config --global user.email “email”
git工作流程
Workspace(工作区):当前开发位置
git pull:从远程仓库拉取最新代码到工作区,相当于git fetch+git merge
git diff:查看修改但未暂存的文件
Index (暂存区):
git add:工作区修改的内容提交到暂存区,交由Git管理
git status:查看暂存区文件状态
Repository(本地仓库)
git commit:将暂存区的内容提交到本地仓库
git clone 或者 git fetch:从远程仓库拷贝/拉取代码到本地仓库
Remote(远程仓库)
git push:将本地仓库的内容提交到远程仓库
上传
git add .
git commit -m"commit"
git push (对应git pull)
其他
ctrl+l 清空屏幕(命令行界面)
git checkout [branchname] 切换分支
git checkout .
本地所有修改的。没有的提交的,都返回到原来的状态(即git丢弃本地修改的所有文件(新增、删除、修改))
git 放弃本地所有操作 (增、删、改)
git clean 参数
-n 显示 将要 删除的 文件 和 目录
-f 删除 文件
-df 删除 文件 和 目录
文件颜色
白色:加入版本控制、已提交、未改动
蓝色:加入版本控制、已提交、有改动
绿色:加入版本控制、未提交
红色:未加入版本控制
灰色:版本控制已忽略
一些问题
1、git pull 和 git fetch有什么区别?
git fetch :获取远程代码
git pull = git fetch + git merge 一步到位
实际上,使用git fetch更安全一些,在merge前,我们可以查看更新情况,然后再决定是否合并。
git fetch origin master:tmp
git diff tmp
git merge tmp
2、git reset 与 git revert有什么区别?
git reset是直接删除指定的commit
git revert是用一次新的commit来回滚之前的commit。
3、git rebase 与 git merge有什么区别
git merge会生成一个新的节点,并将之前的提交分开显示
git rebase操作不会生成新的节点,而是将两个分支融合成一个线性的提交