Git的使用
在Ubuntu上安装Git
执行命令:
sudo apt install git-all
初次运行Git前的配置
通过git config命令及不同选项可以在系统、用户和仓库三个层次设置Git的配置变量:
命令 | 选项 | 作用范围 | 配置变量存储位置 |
git config | --system | 配置对系统上的每个用户及仓库生效 | /etc/gitconfig |
--global | 配置仅对当前用户生效 | ~/.gitconfig | |
--local | 配置仅对当前仓库生效 | .git/config |
设置Git提交所必须的用户名与邮件地址信息:
git config --global user.name "Your Name" git config --global user.email "your_address@xx.com"
上述命令在使用--global选项时则仅需执行一次,后续项目即仍使用相同用户名与邮件地址
而查看配置及其所在文件的命令为:
git config --list --show-origin
单独使用--list选项也可以列出配置但不显示其所在文件\
初始化仓库
对于需要使用Git进行版本控制的项目,首先需要进入其目录中,然后执行:
git init
以初始化仓库,然后通过git add命令来指定需要进行追踪的文件:
git add *.c
然后执行如下提交命令:
git commit -m “initial version”
其中,双引号包围的内容为备注的信息
记录更新到仓库
通过git status命令可以查看文件的状态:
git status
当在本地仓库目录中新建文件时,新文件并未被跟踪,因此需要使用git add命令开始跟踪,且文件修改过后,需要重新执行git add以保证暂存的为修改过后的版本,而为git commit加上-a选项将会使提交包含所有修改过的文件,从而跳过git add命令,但这可能导致将不必要的文件添加到提交中
可通过git status命令查看文件状态,而git rm命令可以同时从磁盘和跟踪文件清单中删除指定文件,但若想保留文件在磁盘中,需要使用--cached选项,即:
git rm --cached filename
通过下述命令可以查看提交历史:
git log
远程仓库的使用
在GitHub上创建仓库之后,可通过如下方法将本地仓库文件推送到GitHub仓库(注意,本地仓库名称与GitHub仓库名称相同):
添加远程仓库:
git remote add origin https://github/user_name/git_test.git
推送到远程仓库:
git push origin master
注:在进行远程仓库的添加与推送前,需要完成上文中的配置、初始化以及追踪、提交文件等步骤
而将GitHub仓库的内容克隆到本地,则使用git clone <url>命令:
git clone https://github.com/libgit2/libgit2
上述命令即可克隆libgit2仓库,并在当前目录下创建一个名为“libgit2”的目录,同时从远程仓库拉区项目内容
当需要自定义克隆远程仓库得到的本地仓库名称时,可使用如下命令指定目录名称:
git clone https://github.com/libgit2/libgit2 mylibgit
其中,参数“mylibgit”为指定的目录名
总结
1 |
安装 |
sudo apt install git-all |
2 | 配置 |
git config --global user.name "user_name" git config --global user.email "email_id" |
3 | 初始化 | git init |
4 | 追踪 | git add test.c |
5 | 提交 | git commit -m "message" |
6 | 创建 | 在GitHub创建与本地仓库同名的远程仓库 |
7 | 添加 | git remote add origin https://github.com/user_name/git_test |
8 | 推送 | git push origin master |
另:
克隆 |
git clone https://github.com/...
|
拉取 |
git pull origin master |
在首次安装git后,需要执行上文所述的用户名与邮箱配置,方可执行克隆命令,否则会导致如下报错:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)