Git知识学习

git远程仓库相关命令

$git clone url git远程仓库地址
$git remote -v 查看远程仓库
$git remote add [name] [url] 添加远程仓库
$git remote rm [name] 删除远程仓库
$git remote set-url --push[name] [newUrl] 修改远程仓库
$git pull [remoteNmae] [localBranchName] 拉去远程仓库到本地
$git push [remoteNmae] [localBranchName] 推送远程仓库

分支相关操作

$git branch 查看本地分支
$git branch -r 查看远程分支
$git branch [name] 创建本地分支
$git checkout [name] 切换分支
$git checkout -b [name] 创建新分支并切换到新分支
$git branch -d [name] 删除分支 -d选项只能已经参与合并的分支,对于对于没有合并的分支无法删除。如果想强制删除一个分支,可以使用-D选项
$git merge [name] 将[name]分支合并到当前分支上
$git push origin test:master 提交本地分支作为远程的master分支
$git push origin test:test 提交本地test分支作为远程test分支
$git push origin :test :左边的分支为空时,将删除右边的远程分支,本地依然保存

日志打印

$git log -g 记录当前分支的commit
$git reflog --date=iso 记录各个分支commit --date=iso 以标准时间格式展示
退出日志模式
英文下 按一下 Q

恢复误删分支

采用打印日志找到所需要恢复信息对应的commit_id
$git branch [name] commit_id通过该命令建立新的分支,删除的文件就恢复到[name]分支上

恢复误删除文件

git checkout [commit_id] --< path_to_file>

Git commit与pull的先后顺序

1.在本地修改与远程代码无冲突的情况下,优先使用pull->commit->push
2.在本地修改与远程代码有冲突的情况下,优先使用commit->pull->push
第二种情况为了应对多人合并开发的情况:
1.commit是为了告诉git本地提交改动的地方
2.pull是为了本地commit和远程commit的对比记录。由于git本身是按照行数作对比,如果在同一行进行操作就会产生冲突,需要与你有冲突部分编写的人进行交流,然后git add && git commit &&git pull,再次pull是为了你们协商过程中他人提交新版本,,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉 。
3、出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的

两个分支,A和B,A合并B和B合并A,有区别吗?

两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit 的信息,这个时候 B 是合并状态而 A 未合并状态,如果现在没有发生任何改动执行 B->A 就直接切换过去了,连 merge_commit 都不会生成了

猜你喜欢

转载自blog.csdn.net/qq_43054241/article/details/99817103