Git使用

打印 上一主题 下一主题

主题 1840|帖子 1840|积分 5520

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  Git是一个分布式的版本控制软件(即拥有本地仓库进行管理)。相较于会合式的版本控制软件,更加机动更加快速。参考的教程:参考教程
1.配置用户密码list

  1. git --version
  2. git config --global user.name  "intWings"
  3. git config --global user.email xxx@qq.com
  4. git config --global credential.helper store #为了保存账号密码
  5. git config --global --list
复制代码
2.创建一个git仓库

  1. git init
  2. git init Learn_git #这种写法会在路径下创建一个learn_git的文件夹成为git仓库
复制代码
可见天生了.git文件夹:

3.四种状态

Untrack Unmodified Modeified Staged

4.仓库管理

  1. git add . #提交untrack的文件
  2. git status #查看仓库状态
  3. git commit -m "First Commit!" #提交并用-m加上信息,或者如果不加就会进入vim界面
  4. git log #查看提交的日志
  5. git log  --oneline#查看提交的日志并简洁的输出
  6. git ls-files #查看暂存区,ls所查看的是工作区
复制代码
5.git reset下令

git reset是非常强大的下令,可以撤销错误的修改!有三种不同的模式:

格式类似于:
  1. git reset --soft 8734df4dee9d7e11a5d1e3d43b760480bdbe710e
复制代码
这里的commit 号可以通过git log下令查到,留意这个不是回退这个操纵而是回退到这个commit号所指定的提交!如果在hard模式下不鉴戒reset了比较紧张的文件,仍然可以用git reset来撤回(哪怕是hard模式)可以用以下下令查察之前做的操纵:
  1. git reflog
复制代码
然后git reset --hard到这个commit id之前就好了!
6.git diff下令

git diff下令用于比较差异。详细用法可以参考以下表格:

这里HEAD~指的是HEAD上一次提交的版本,如果是HEAD~2就指的是HEAD上两次提交的版本。
7.删除操纵

删除操纵有两种可以本地删除,然后add 再提交,也可以git rm删除,git rm删除的这个操纵会被保存在暂存区,并且 git ls-files并不能查察到这个文件了,然后使用commit即可。


8. .igitignore文件

这个文件可以方便库管理时忽略一些我们不想让参加库更改的文件减少库的冗余。好比c语言天生的.o文件,打印的日志文件,编译出的一些暂时文件,这些我们都不必要把他们参加到我们的库里。这个文件我们可以在我们的库中创建。

这里要留意一个小知识点:如果一个文件已经先于.gitignore在我们的库中。那么他是不会被忽略的。我们可以用 git rm --cached <filename>+git add+git commit!并且git仓库默认不会追踪我们创建的空文件夹!
github中其实已经有很多各种语言项目使用的.gitignore模板,可以直接使用!
关于匹配规则:


9.github的简单使用

github是一个git的网络托管平台。我们有两种方式毗连到我们的github远程仓库,一种是https,一种是ssh。比较保举的是ssh!使用ssh必要把自己的本地公钥(.pub)上传到github(类似于开了一扇门,但是同时看到这扇门才知道你进去的是github的服务器的房子),然后在本地配置私钥(如果第一次天生且为默认名称id_rsa,就不消配置了)。然后就可以开心的使用gitclone下令了!

那么如何在远程仓库关联本地仓库呢?我们只必要在远程建立一个空仓库,github就会自动给我们一些提示来完成这个操纵!完成之后可以使用git remote -v 来查察远程仓库和本地仓库的映射关系。这里也给出了几条指令:

要留意几点:首先是如果本地仓库为空,还没有修改,会发现git branch没有分支,是没办法直接push的。 比方:git push -u Remote_Try main 。这里为了避免登录耗时,可以直接用ssh复制的毗连替换<远程仓库名>。

10.git的分支操纵

分支操纵的应用场景很广泛,试想一下,有一个已经在运行的大型软件,如今有不同的部门要在这个软件的基础上开辟模块,在这期间还要包管现有软件的正常运行,这时间就必要分支。
主要有以下操纵:

另外有一个在终端的可视化分支展示:(有些抽象)
  1. git log --graph --oneline --decorate --all
复制代码

但是这里可以用alias下令来做一个映射:
  1. alias graph="git log --graph --oneline --decorate --all"
复制代码
 这样我们就可以直接用graph代替这一坨指令了!

在分支合并的时间如果有冲突,就必要我们手动办理冲突,保举的方法是使用vscode等ide会比较直观。可以使用git diff查察冲突的地方,或者直接vim查察文件,手动修改之后,使用git add 然后commit!


还有一个类似于git merge的下令:git rebase。这个下令和git merge 的区别就是这个下令会像合并链表一样进行合并,类似于这样:

有点就是比较清楚,缺点就是会改变当前分支branch out 的节点。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表