我常干还老忘记的命令
设置本地分支与远程分支的追踪关系 git branch --set-upstream-to=origin/develop develop_15594
git stash save '7818编译备份'
git rebase -i HEAD~n(或者版本号) (n为数字)把多次提交合并成一个
会遇见这几个字母,一般使用s,f,前后是根据提交顺序判断前后的
p (pick):保留该提交不变。这是默认操作。
r (reword):重新编写该提交的消息。这允许您更改提交信息而不改变提交的实际内容。
e (edit):编辑该提交的内容。这允许您在提交之前对文件进行任何更改。
s (squash):合并【这一个提交】到【这一个提交】上次的提交中。这有助于减少提交历史中的杂乱。
f (fixup):类似 squash,但是通常用于那些不需要自定义提交消息的小改动,因为提交消息会被自动采用前一个提交的消息。
d (drop):删除这个提交。
x (exec):执行自定义命令(通常用于钩子脚本)。
本地相关分支命令:
git branch [查看分支]
git branch -a [查看所以分支,包括远程]
git branch -vv [查看分支,显示本地分支与远程分支的跟踪关系]
git branch <name> [创建本地分支]
git branch -d <name> [删除空分支]
git branch -D <name> [删除非空分支]
git branch -m oldbranchname newbranchname [git分支重命名]
git checkout <name> [切换分支]
git checkout -b <name> [创建+切换分支]
git checkout -b newbranchname commitid [指定某个git的版本代码拉取新的分支]
远端相关分支命令:
git fetch -p -v [拉取最新git分支信息]
git checkout -b localbranchname origin/origin_branchanme [拉取远程分支到本地, 本地分支会与远程分支建立映射]
git fetch origin origin_branchanme:localbranchname [拉取远程分支到本地,本地分支不会与远程分支建立映射]
git pull origin origin_branchanme:localbranchname [取回远程主机某个分支的更新,再与本地的指定分支合并]
git pull origin name [取回远端的name分支与本地name分支合并]
git pull [取回远端同名分支并合并当前分支]
git push -u origin/remote_branch [远端已有remote_branch,但未关联本地local_branch且本地已经切换到lcoal_branch]
git push origin local_branch:remote_branch [远程没有remote_branch分支,本地已经切换到local_branch分支]
git push origin --delete origin_branchanme [删除远程分支]
git fetch origin dev [获取远端的origin/dev分支]
git fetch origin master:master1 [在本地建立master1分支,并下载远端的origin/master分支到master1分支中]
提交相关命令
git add filepath [添加正在工作的文件到暂存区]
git reset HEAD . [将所有add的文件从暂存区拉出来]
git restore --staged . [将所有add的文件从暂存区拉出来]
git reset HEAD filepath [将add过的filepath从暂存区拉出来]
git restore --staged filepath [将add过的filepath从暂存区拉出来]
git checkout filepath [需要配合git reset filepath,因为只有不在暂存区的文件,才能还原修改]
git commit -m "desc" [提交暂存区到分支]
git commit --amend -m "new desc" [git修改提交注释]
git clean -d -x [用于清除没有tracked的文件]
git rm --cached filepath [不删除物理文件,仅将该文件从缓存中删除,会不追踪此文件]
git rm --f filepath [不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)]
查看
git diff [查看add之前的修改]
git diff --cached [查看add但是还未commit的文件]
git diff --name-only --cached [查看已经git add了哪些文件]
git diff master1 [查看本地master1分支与当前分支的版本差异]
git show [查看上一次commit的修改]
git status [显示被更改过的但未commit的文件]
git log -number [查看最近的数字个提交日志]
git log -p master..origin/master [示例1:查看本地master与远端origin/master的版本差异]
回退
git reset filepath
git reset --hard HEAD^ [回退版本:(一个^会退一个版本)(HEAD也可以换成版本号)hard回退是删除所作的修改,soft回退时不删除所作的修改]
合并
git merge --abort [回到merge之前的状态]
git merge dev1 [合并本地分支dev1到当前分支]
git merge origin/master [合并远端分支origin/master到当前分支]
栈命令
git stash save "desc" [将修改放到栈区]
git stash clear [清空栈区]
git stash drop stash@{0} [指定删除栈区]
git stash apply stash@{0} [应用栈区,被应用栈区还保留]
git stash pop stash@{0} [应用栈区,同时删除被应用的栈区]
查看url
git remote -v [查询当前远程分支]
git配置命令
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
git config --global color.ui true|false [启用禁用颜色]
git config --global credential.helper store [记住账号密码]
git config --global user.name "username" [指定自己的用户名]
git config -- global user.email "mail" [指定自己的用户名]
git rebase -i HEAD~n(或者版本号) [(n为数字)把多次提交合并成一个]
会遇见这几个字母,一般使用s,f,前后是根据提交顺序判断前后的
p (pick):保留该提交不变。这是默认操作。
r (reword):重新编写该提交的消息。这允许您更改提交信息而不改变提交的实际内容。
e (edit):编辑该提交的内容。这允许您在提交之前对文件进行任何更改。
s (squash):合并【这一个提交】到【这一个提交】上次的提交中。这有助于减少提交历史中的杂乱。
f (fixup):类似 squash,但是通常用于那些不需要自定义提交消息的小改动,因为提交消息会被自动采用前一个提交的消息。
d (drop):删除这个提交。
x (exec):执行自定义命令(通常用于钩子脚本)。
创建版本库命令:
mkdir 文件夹名
cd 文件夹 (进入创建的目录)
pwd 看看自己在那个目录(也就是自己版本库的位置)
git init (将你创建的目录变成git可以管理的仓库, 成功会多出一个默认隐藏的.git文件)