个人向git使用命令总结
个人向git命令总结大全
最近打算入门《Hello 算法》这本教程,打算基于==Python==、==C++==、==Rust==三个语言来学习这本教程,主要是针对数据结构及算法这些层面,来给自己做一个入门。
其中涉及到一些东西,比如说环境的安装(Rust的我连安装都不会),还有一个比较重要的是,我会在实验室的Windows台式机和宿舍的Macbook两个电脑上进行学习,如果只是学习算法不敲代码就还好,一些网页或者文档同步就比较简单,用Onedrive或者NAS同步就行。但是如果学算法不自己手敲的话,岂不是相当于没学么?这个时候代码同步托管平台的重要性就显现出来了,首选肯定是github,这就免不了使用git命令了。但是鄙人实在是不太精通git的使用,所以网上搜罗,并且手敲,花了一下午的时间基本搞清楚了个人的相关使用(目前只做了两个端,三个branch,一些简单的应用,如果要对应于应用的多人开发肯定是胜任不了的;什么develop分支、bug分支、release分支这些,实在太多了,也没耐心学习,可能后面会逐步用到再学习吧,现在也只是个人开发,够用了。
注:网上有很多好用的教程,而本人懒得每次都去搜,同时有很多git的内容比较繁杂,所以在这里只做精简的指令总结,以后忘记的时候可以快速找到。
基本指令
以下是最基础的git使用命令,即对应初始化,添加文件,提交到仓库,以及push到github等相关代码托管平台指令。
git init |
其中,有一些疑问的,比如说git branch -M main
中-M
的用处,其实就是:
-M选项用于重命名分支,并且可以替换同名的现有分支。 重命名分支在Git中是一种常见操作,适用于统一命名约定或更改分支的描述性名称。 通过使用git branch -M main命令,我们可以将默认分支从”master”更改为”main”,并避免与种族主义术语相关的问题。
Git “git branch -M main”中的-M是什么意思|极客笔记 (omnivore.app)
还有,git push -u origin main
中的-u
的作用:
The -u tells Git to remember the parameters, so that next time we can simply run git push and Git will know what to do.
相当于第一次串门的时候你登了个记办了个vip。以后再来就知道是你来了。不用脱裤子搜身了
git push 的 -u 参数具体适合含义? - 知乎 (zhihu.com)
不同分支版本管理
本地间不同分支切换与合并
以上就是最基本的,后面的话设计一些分支操作还有不同分支的版本管理。
创建一个新的分支可以使用以下命令:
git branch <branch_name> |
这将在当前所在的提交上创建一个名为 <branch_name>
的新分支。
要切换到新创建的分支,可以使用以下命令:
git checkout <branch_name> |
创建并立即切换到该分支,可以使用以下命令:
git checkout -b <branch_name> |
合并分支可以使用以下命令:
git merge <branch_name> |
这将将 <branch_name>
分支中的更改合并到当前分支。
处理冲突
当两个分支上的代码修改了同一部分,并且尝试将这两个分支合并时,就会发生代码冲突。Git提供了以下步骤来解决冲突:
- 运行
git status
命令查看哪些文件包含冲突。 - 编辑有冲突的文件,手动解决文件中的冲突。
- 对编辑后的文件进行
git add
,标记为已解决冲突的文件。 - 使用
git commit
提交更改,Git 会自动生成一个合并提交,其中包含各自分支中的更改。
注意:在解决冲突前,最好先备份当前的代码状态,以免不小心破坏代码库。另外,在处理冲突之前,可以通过运行 git diff
命令来查看冲突的源代码,以便更好地理解要解决的问题。
从远端仓库提取数据并尝试合并
从云端仓库中获取最新的版本信息
git fetch origin |
以上命令将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。
将云端fetch到的最新的内容合并到当前分支。
git merge origin/main/* |
基本这样就够正常使用了,反正我的正常使用应该够用了。
下面一些参考资料,以供相关应用。
附录
Git 使用教程:最详细、最正宗手把手教学(万字长文) - 知乎 (zhihu.com)
我在M1 MacBook Pro上的git使用技巧-CSDN博客
为什么开了代理,git push 还是很慢或报错_git有权限但push卡顿_Xavier Jiezou的博客-CSDN博客