初始化一个git仓库:git init
添加文件到代码仓库,分两步:
- 使用命令
git add 文件名
—–>把文件修改添加到暂存区 - 使用命令
git commit -m 提示消息
—->把暂存区所有内容提交到当前分支
要随时掌握工作区的状态,使用git status
如果git status
告诉你文件被修改过,用git diff
可以查看修改内容
回退到上一个版本git reset --hard HEAD^
回退到上上一个版本git reset --hard HEAD^^
指定去往某一个特定版本:git reset --hard 版本的commit id
记录每一次命令的日志:git reflog
版本穿梭
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。
穿梭前,用git log
可以查看提交历史,以便确定要回退到哪个版本
要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本。
撤销修改:
- 当你改乱了工作区某个文件的内容(就是还没有
git add 操作
),想直接丢弃工作区的修改时,用命令git checkout -- file
。 - 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时(已经
git add
但是还没有git commit
),想丢弃修改,分两步:git reset HEAD 文件名字
。通过这个操作后回到了只是修改,但是尚未git add
的状态- 通过情景一的操作即可
- 已经提交了不合适的修改到版本库时,想要撤销本次提交。则可以版本回退:
git reset --hard commit_id
删除
git rm 文件名字
分支
查看分支:git branch
创建分支:git branch dev
//创建了一个名字叫dev的分支
切换分支:git checkout dev
//切换到dev分支上
合并某分支到当前分支上:git merge dev
合并dev分支到当前分支上
删除分支:git branch -d dev
删除dev分支
rebase和merge的区别
merge操作会生成一个新的节点,之前的提交分开显示,而rebase操作不会生成新的节点,而是将两个分支融合成一个线性的提交
如果你想要一个干净的,没有merge commit的线性历史树,那么应该选择git rebase,如果你想要留下完整的历史记录,那么应该选择git merge