git操作知识
我常干还老忘记的命令 设置本地分支与远程分支的追踪关系 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文件)