默认分支修改,删除有关问题
- 远程和本地仓库名字一样,但其实不是同一个导致拒绝访问
解决:将远程的克隆到本地,然后再修改,把.git放到需要上传的项目里面,再上传
git clone https://…
git remote add origin https://github.com/Tsimage/Swint_TCT.git #连接远程仓库 - git status,查看
- git add . 添加当前目录下所有文件到缓存区
- git commit -m ‘first commit’ 缓存区到本地仓库
- git push -u origin master
git项目内容更新
只要在本地.git 文件所在项目更新,然后按上面的git add . 及后面的操作更新就好了
git更新代码
1 git status #查看已修改的文件情况
2 git add * #添加要push到远程仓库的文件或文件夹
3 git commit -m “详细描述本次修改的内容”
4 git push #将本地仓库push到远程仓库,-f强制push到远程仓库
提交相关
想要对代码进行提交必须得先加入到暂存区,Git中是通过命令 add 实现
添加某个文件到暂存区
-git add 文件路径
添加所有文件到暂存区(当前目录下所有文件):
- git add .
同时Git也提供了撤销工作区和暂存区命令
撤销工作区改动: - git checkout – 文件名
清空暂存区: - git reset HEAD 文件名
提交:
将改动文件加入到暂存区后就可以进行提交了,提交后会生成一个新的提交节点,具体命令如下: - git commit -m “该节点的描述信息”
分支相关
创建分支,创建一个分支后该分支会与HEAD指向同一节点,说通俗点就是HEAD指向哪创建的新分支就指向哪,命令如下:
- git branch 分支名
切换分支 当切换分支后,默认情况下HEAD会指向当前分支,即HEAD间接指向当前分支指向的节点
- git checkout 分支名
也可以创建一个分支后立即切换,命令如下:
- git checkout -b 分支名
删除分支为了保证仓库分支的简洁,当某个分支完成了它的使命后应该被删除。比如前面所说的单独开一个分支完成某个功能,当这个功能被合并到主分支后应该将这个分支及时删除。
- git branch -d 分支名
Git下载指定分支命令为:git clone -b 分支名 仓库地址
1)远程没有dev分支,(本地已经切换到dev)
git push origin dev:dev
git push origin 本地分支 : 远程分支名
本地推送远程,远程不需要有对应分支
- git push -u origin classification
合并相关
关于合并的命令是最难掌握同时也是最重要的。我们常用的合并命令大概有三个merge、rebase、cherry-pick
merge
merge是最常用的合并命令,它可以将某个分支或者某个节点的代码合并至当前分支。具体命令如下:
- git merge 分支名/节点哈希值
rebase
rebase也是一种合并指令,命令行如下:
- git rebase 分支名/节点哈希值
merge优缺点:
优点:每个节点都是严格按照时间排列。当合并发生冲突时,只需要解决两个分支所指向的节点的冲突即可
缺点:合并两个分支时大概率会生成新的节点并分叉,久而久之提交历史会变成一团乱麻
rebase优缺点:
优点:会使提交历史看起来更加线性、干净
缺点:虽然提交看起来像是线性的,但并不是真正的按时间排序,比如图3-3中,不管C4早于或者晚于C3提交它最终都会放在C3后面。并且当合并发生冲突时,理论上来讲有几个节点rebase到目标分支就可能处理几次冲突
cherry-pick
远程相关
在Git中可以通过clone从远程仓库复制一份代码到本地,具体命令如下:
- git clone 仓库地址
clone不仅仅是复制代码,它还会把远程仓库的引用(分支/HEAD)一并取下保存在本地,如图3-5所示:
fetch
说的通俗一点,fetch命令就是一次下载操作,它会将远程新增加的节点以及引用(分支/HEAD)的状态下载到本地,具体命令如下:
- git fetch 远程仓库地址/分支名
pull
pull命令可以从远程仓库的某个引用拉取代码,具体命令如下:
- git pull 远程分支名
其实pull的本质就是fetch+merge,首先更新远程仓库所有状态到本地,随后再进行合并。合并完成后本地分支会指向最新节点
push
push命令可以将本地提交推送至远程,具体命令如下:
- git push 远程分支名
如果直接push可能会失败,因为可能存在冲突,所以在push之前往往会先pull一下,如果存在冲突本地解决。push成功后本地的远程分支引用会更新,与本地分支指向同一节点。