1. git add 添加修改文件到暂存区,不止是添加新文件。
2. git commit —amend -m ‘xxxx’ 使用新的修改替代上一次修改,覆盖操作
3. git checkout — file 丢弃file工作区的修改(还原当前修改)。
git checkout -b branch 创建并且切换分支
4. git reset HEAD file 撤销暂存区的修改
如果想撤销暂存区和工作区的,可以结合checkout 一起完成
git reset —soft 只改变提交点,暂存区和工作目录的内容都不修改
git reset —mixed 改变提交点,同时改变暂存区的内容
git reset —hard 暂存区,工作区内容都会修改到与提交点完全一致状态
git reset —hard HEAD 让工作区回到上次提交的工作状态,等同于下面的操作
git reset HEAD file
git checkout — file
5. git revert HEAD回退commit的代码,与reset的区别是,revert通过新增一次提交来覆盖原来的修改,并且是针对提交的repos , 而reset是直接回到原来的提交点,根据soft,mixed,hard来决定会退内容,当做merge的时候,reset中原来回退的提交点依旧会去做合并,会冲突的
6. rebase 和merge的区别,rebase将分支的修改在master上面重演,并抛弃分支。merge保留了原来的分支结构
7. git merge —no-ff -m ’xxx’ branch 强制使用非fast-forward 方式合并,为了保留分支的修改,如果用了ff 模式,等同于rebase
8. git stash 保留当前工作现场,例如:在同一个工作目录中,正在开发一个dev,还没有提交,但是马上需要修改另外一个更重要的问题,这时候,用这个命令保留当前工作场景,然后切换分支进行开发,结束后使用git stash pop或者apply都能拉回dev 的代码
9. git clone 仅仅是拉去到本地,没有与远程开发进行关联。如果需要同远程关联,第一种方法,git checkout -b dev origin/dev,第二种,git branch —track branch remote-branch
10. git pull失败时,可能本地与远程没有链接起来,这么操作,git branch —set-upstream-to=origin/dev dev
11. 第一次push ,git push -u origin master
12. 如果.gitignore文件写得有问题,用git check-ignore检查
13. git config —global alias.co checkout 定义别名
例子:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"