由于之前在开发过程中经常因为不熟悉git命令而影响开发进度,后来特意针对自己常见的问题分门别类地整理了git的使用命令,供大家参考!
常用流程:
-
初始化项目: git init
-
拉取远程项目代码: git clone <xx仓库地址>
-
查看所有本地分支: git branch (加 -ra 包括远程和本地分支)
-
创建并切换到该分支: git checkout -b <xx新分支>
-
切换到已有分支: git checkout <xx已有分支>
-
拉取某分支代码: git pull (origin <xx分支>)
-
添加所有内容到暂存区: git add .
-
提交本地代码: git commit -m ‘xxx提交描述’
-
推送到远程仓库: git push (加 -f 为强制推送)
其他操作:
1.查看提交:
查看历史提交记录:
git log
以列表形式查看指定文件的历史修改记录:
git blame <file>
2. 分支管理:
创建分支:
git branch
<xx分支>
创建并切换到该分支:
git checkout -b <xx新分支>
切换分支:
git checkout
<xx分支>
删除分支:
git branch -d
<xx分支>
3.保护现场:
切换分支前保存未提交代码
:git stash save ‘xxx保存描述’( 或直接
git stash 保存所有且不加注释 )
查看stash所有记录:
git stash list
抛出stash某记录代码:
git stash pop stash@{ i
}
删除stash所有记录:
git stash clear
4.代码回滚:
清空还没 add和commit 的(修改文件)工作区代码:
git checkout .
清空还没 add和commit 的(新建文件)工作区代码:
git clean -d
回退已经add尚未commit的代码:(这里的覆盖指的是,回退或删除该区域的内容)
-
git reset . (覆盖暂存区)
-
git reset —hard HEAD(覆盖工作区和暂存区)
回退已经commit尚未push的代码:
1.
git reset —hard origin/master (拉取远程仓库代码,覆盖工作区、暂存区和版本库)
2.
git reset —hard <last_commit_id>/
HEAD (覆盖工作区、暂存区和版本库)
3.
git reset —mixed <last_commit_id>/
HEAD (覆盖暂存区,不覆盖工作区,默认参数)
删除暂存区中(已经add)的文件:
git rm --cached <file> (直接删除暂存区的文件,工作区的文件不受影响)
5.摘取提交:
将A分支中已经commit的代码,在B分支中根据目标commitHash进行摘取
在B分支中执行:
git cherry-pick <commit_id>
一次应用多个提交:
git cherry-pick <commit_id1> <commit_id2>
一次应用连续的多个提交:
git cherry-pick <commit_id1>~..<commit_id3>