1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
| git config --list git init git add . git commit git status git log git log --oneline
git reset --soft 5af900(摘要编码) git reset --hard git reset head^(默认是mixed模式 本地仓库回退,暂存区回退,但本地文件不发生改变,head^代表head指针指向的版本 也就是最新的版本)
#工作区和暂存区域的差异 git diff #暂存区域和本地仓库的差异 git diff head #比较两个版本之间的差异 git diff (file1) (file2) #比较倒数第一个版本和最新版本的差异 git diff head~ head head~等价于head~1 代表最新版本的前一个提交 #只查看关于file3.txt文件的修改 git diff head~1 head file3.txt
#删除工作区和暂存区的文件 git rm file2.txt #只删除暂存区的文件 git rm --cached file2.txt, 工作目录还保存
#已经有本地仓库,将本地仓库与远程仓库连接起来 git remote add origin(远程仓库别名) git@github.com:yuntengzhiyu/remote_re.git #本地main->远端main git push -u origin main 查看远程仓库origin(fetch和push的仓库地址) git remote -v #添加远程仓库 git remote add origin2 git@git.
#拉取分支 git pull(默认是origin main(远程分支):main(本地分支),或者是origin main) 拉取分支并合并
#查看分支 git branch git branch -a(本地和远程分支) git branch -vv #创建分支 git branch dev #切换分支 git checkout(switch) dev checkout还可以用来恢复文件,如果分支名和文件名相同 可能有歧义 git checkout (id) #切换到某个commit上,head指针处于分离状态。 git checkout (id) a.txt #恢复a.txt文件到id所在的commit状态 #创建并切换分支 git checkout -b dev #查看本地分支与远端分支的对应关系 git branch -vv
#查看图形化信息 git log --graph --oneline --decorate --all #删除分支(要求分支已经合并) git branch -d dev #强制删除分支 git branch -D dev #删除远端分支 git push origin -d dev #查看远程仓库的分支 git branch -r
#合并分支 在main分支下 git merge branch-name
#完整的合并分支流程 main分支下: echo "111" >> file1.txt git add . git commit #上面两部可以合并成为git commit -a "" echo "222" >> file2.txt git add . git commit
切换到dev分支 git checkout -b dev echo "333" >> file3.txt git add . git commit
可以查看在不同的分支下ls, git ls-files的情况
git switch main git merge dev
#完整的处理合并冲突 echo "11" >> file1.txt git add . git commit echo "22" >> file2.txt git add . git commit git checkout -b dev echo "33" >> file3.txt git add . git commit git switch main echo "333" >> file3.txt git add . git commit git merge dev 发现file3.txt有冲突 vim file3.txt 修改完毕重新提交 git add . git commit
第一次创建dev的时候,会在main的基础上创建。dev分支创建之后,合并到main分支上,对dev分支没有影响。当再次切换到dev分支的时候,会重新回到还未被merge到main分支的dev分支处。
#变基操作 在dev分支处变基 git switch dev git rebase main dev分支会从交点处断开,接到main分支后面,也就是变基到main上 rebase场景 git fetch origin main git switch main git rebase origin/main 或者 git fetch origin main git switch main git merge origin/main 或者 git
#head指针 head指向最新的分支
#分别设置不同上游仓库 本地main分支 git push -u origin main(默认是main:main, 也就是本地main到远端main) git push -u origin(意思是推到上游仓库,仓库地址是origin,可以通过git remote -v查看origin信息) git push -u origin dev:test(本地dev分支推到远端test分支), 结果可以通过git branch -vv查看。 本地dev分支 git push -u origin dev 查看仓库对应 git branch -vv
|