提示:本篇文章旨在记录个人学习笔记,如有错误欢迎各位大佬指出。
前言
平时工作上对于代码的管理接触的比较少,有时候有些代码都是口口相传,所以使用代码管理工具会方便很多。目前,使用较多的大多为git或者svn,本篇文章以git工具为主要介绍对象,怕自己会忘记,所以特在此篇文章记录一下。
一、Git环境配置
1.Git是什么
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
2.Git环境配置
- 使用git,当然要下载git,这里提供官网的下载地址:https://git-scm.com/downloads
- 根据自己的系统版本选择下载,下载安装完成后,打开Git Bash
- 配置邮箱账号
git config --global user.name “username”
git config --global user.email “email”
- 生成SSH-Key,绑定邮箱账号
ssh-keygen -t rsa -C "xxx@email.com"
- 查看SSH密钥,生成的密钥文件为id_rsa,一般存放在C:\Users\username.ssh,打开id_rsa文件复制内容至GitHub上
-----BEGIN OPENSSH PRIVATE KEY-----
b3Blb...DBAUG
-----END OPENSSH PRIVATE KEY-----
- 点击设置,找到SSH keys,将密钥复制到New SSH Key栏上就完成了SSH密钥配置了。
Note: 添加完密钥之后,兴冲冲地跑去拉代码,然后发现:咦~,怎么还是不行?这可能是管理员还没有分配代码的权限给你,需要你跟你们领导申请权限。
二、Git的使用
1.管理分支
代码如下(示例):
# 查看当前分支
$ git branch
# 查看所有分支情况
$ git branch -a
# 创建分支
$ git branch MyWork
#切换分支
$ git checkout MyWork
$ git switch MyWork
# 创建并切换分支
$ git checkout -b MyWork
$ git switch -c MyWork
# 删除分支
$ git branch -d branch-name
# 将MyWork分支合并到master分支中
$ git checkout master
$ git merge -m "Merge from MyWork" MyWork
2.增加内容及标签
代码如下(示例):
# 添加一个或多个文件到暂存区:
$ git add [file1] [file2] ...
# 添加当前目录下的所有文件到暂存区:
$ git add .
# 指定标签信息命令:
$ git tag -a <tagname> -m "标签信息"
3.提交与回退内容
代码如下(示例):
# 提交暂存区的指定文件到仓库区:
$ git commit [file1] [file2] ... -m [message]
# -a 参数设置修改文件后不需要执行 git add 命令,直接来提交
$ git commit -a
# 回退至上一个版本
$ git reset [HEAD]
$ git reset HEAD~1
# 将指定文件 <file> 恢复到最新的提交状态,丢弃所有未提交的更改:
$ git restore <file>
# 将还原所有未提交的更改,包括工作目录和暂存区的更改:
$ git restore .
4.查看状态及提交历史
代码如下(示例):
# 查看 Git 仓库当前状态:
$ git status
# 查看历史提交记录:
$ git log [选项] [分支名/提交哈希]
-p:显示提交的补丁(具体更改内容)。
--oneline:以简洁的一行格式显示提交信息。
--graph:以图形化方式显示分支和合并历史。
--decorate:显示分支和标签指向的提交。
--author=<作者>:只显示特定作者的提交。
--since=<时间>:只显示指定时间之后的提交。
--until=<时间>:只显示指定时间之前的提交。
--grep=<模式>:只显示包含指定模式的提交消息。
--no-merges:不显示合并提交。
--stat:显示简略统计信息,包括修改的文件和行数。
--abbrev-commit:使用短提交哈希值。
--pretty=<格式>:使用自定义的提交信息显示格式。
5.上传或下载代码
代码如下(示例):
# 查看信息
$ git remote -v
origin https://github.com/xxx/mygit-test (fetch)
origin https://github.com/xxx/mygit-test (push)
# 下载远程代码并合并, 取回 origin/master 分支,再与本地的 master 分支合并
$ git pull origin master
From https://github.com/xxx/mygit-test
* branch master -> FETCH_HEAD
Already up to date.
# 上传远程代码并合并, 将本地的 master 分支推送到 origin 主机的 master 分支
$ git push origin master
$ git push --force origin master # 强制推送
总结
这只是简单的一些比较常用的git命令,更多的详细使用命令可以看 git --help。