git初学
上图clone和pull应该是反了,checkout应该是index到workspace
首先,在本地打开一个文件夹,并用命令行打开。
1.git clone git@github.com:zhongero/2333.git
把该远程仓库clone到当前文件夹中
网址可选ssh/html(但一般html会很卡,用ssh
2.git init
在该文件夹处新建一个本地仓库
该文件夹中有工作区(该文件夹中除.git外的其他文件/文件夹),缓存区(又叫index)(在.git中),和本地仓库(在.git中记录) (本地仓库中有许多分支)
3.git add .
将工作区的数据存到暂存区中,"."表示当前位置,即更新工作区全部数据
4.git commit -m "2333"
把数据从暂存区提交到当前所在的本地分支中//第一次创建默认为master
-m 指令表示添加备注(必须加)
5.git remote add origin git@github.com:zhongero/2333.git
把当前本地仓库与远程仓库联系起来,远程仓库网址为git@github.com:zhongero/2333.git,把它叫做origin//习惯叫origin
注:git remote -v 可以查看远程仓库地址
6.git push origin master:master2
把本地仓库的分支master上传到远程仓库origin的分支master2中//省略“:master2” 将默认表示上传到同名分支master
7.git remote remove origin
把本地仓库和远程仓库origin的链接断掉
8.git branch
查看本地仓库的所有分支,并可以看到当前所在分支是哪个(前面带*)
后面加上指令 -a 表示查看本地仓库和远程仓库的所有分支
类如 使用git branch -a
- master
branch
remotes/origin/master
9.git checkout branch2
head转移到分支branch2处
10.git checkout -b branch3
在本地仓库新建一个叫做branch3的分支,并将head转移到新建的分支处
11.git branch -d branch3
删除本地仓库的分支branch3
注意:此时一定要求当前所在分支不是要删除的分支
12.git push origin --delete branch2
删除远程仓库origin的分支branch2
加上指令-f 表示强制执行
13.git checkout .
用暂存区的数据替换掉工作区的的数据
14.git pull origin branch2:branch3
把远程仓库origin的分支branch2合并到本地仓库branch3中//省略“:master2” 将默认表示合并到同名分支branch2
15.merge两个branch
在github中通过pull requests 创建 new pull request,选择从哪个分支到哪个分支,提交request
然后再通过有管理权限的账号通过request,将其merge
若是有冲突,则先解决冲突再merge
16.git log (branch1)
查看branch1(默认为当前branch当前)的commit操作的日志
显示例如
commit ea02c2f8128b121c244d4512628a3e2b40e2b44d (HEAD -> master)
Author: zhongzero <1144265105@qq.com>
Date: Tue May 31 23:19:35 2022 +0800
3
commit be57022f53026f1b200ce869625f206cdca86aca
Author: zhongzero <1144265105@qq.com>
Date: Tue May 31 23:19:33 2022 +0800
3
commit b6e8c531cb848d2cb83737bc6478be27d55cd303
Author: zhongzero <1144265105@qq.com>
Date: Tue May 31 23:19:30 2022 +0800
3
commit f14f8b0da81339e351072f20058943ca6033b7b9
Author: zhongzero <1144265105@qq.com>
Date: Tue May 31 23:19:27 2022 +0800
3
commit d8382430c1ff63a6b97ab0ccdc3550aa9743ea38 (NNN2, NNN)
Author: zhongzero <1144265105@qq.com>
Date: Tue May 31 23:07:36 2022 +0800
2333
17.git checkout xxxx (其中xxxx是git log中查到的16进制数表示的版本号,如 f14f8b0da81339e351072f20058943ca6033b7b9 )
回退到xxxx所在的版本
18.实现对别人的库发送pull request
step 1.在github别人的仓库中点击fork按钮,把它的仓库复制一份到自己github账号下
step 2.git clone 自己github账号下的这个仓库(git clone后本地仓库和远程仓库之间就已经存在链接了)
step 3.在本地对内容进行修改
step 4.git add .
step 5.git commit -m "xxx"
step 6.git push origin xxx
step 7.在自己github账号下的这个仓库中提交pull request给原来的仓库,等待对方审核决定是否通过
18.实现从别人的库中更新数据
step 1.git remote -v 查看是否已和别人的库产生链接,若没有,则指明我们需要同步的仓库
git remote add upstream xxxx(other's repository)
step 2.git fetch upstream (拉取更新的 branches 和 commits)
step 3.git branch -a(查看当前所在分支)
step 4.git merge upstream/xxx(从别人的远程仓库的分支merge到当前分支)
step 5.git push origin -f xxx (强制push上去)
19.git reset --soft HEAD^
撤销最新一发commit,但不撤销add(几个表示撤销几个commit)(可用替换~1)
20.git reset --hard HEAD^
撤销最新一发commit并把add也一起撤销了(几个表示撤销几个commit)(可用替换~1)