由于之前在开发过程中经常因为不熟悉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>