内容
本文演示了Git在Windows系统下的安装,在GitHub上新建仓库,以及将本地项目源码上传到仓库中的操作。
版本
操作系统:Windows 10
Git version: 2.16.1-64-bit
说明
转载请说明出处:Linux入门实践笔记(四)——Win下安装配置Git以及GitHub项目托管
参考
Git Win系统的下载地址:https://git-scm.com/download/win
Git 基础 - 记录每次更新到仓库:https://git-scm.com/book/zh/v2/Git-基础-记录每次更新到仓库
步骤
Git安装
从官网https://git-scm.com下载最新版的Git,本示例使用windows系统下的2.16.1-64-bit版本。下面开始安装:
建议至少勾选前三项,分别是增加桌面Git图标,增加右键菜单栏的Git Bash Here
与Git GUI Here
。
是否在开始菜单栏中增加Git文件夹,由于笔者很少通过开始菜单栏进入Git,此处选择不创建。
第一项不会改动系统的环境变量,只能通过右键Git Bash Here
使用Git命令。
第二项会将Git添加到环境变量中,从而可以在CMD中执行Git命令。
第三项将Git和Unix工具一起加到环境变量中。这会覆盖Windows中的一些工具。
本示例选择第一项。
选择Git使用的HTTPS连接库,此处使用默认选项。
配置文件结尾字符的处理,默认选择第一项。将文本行结尾的LF转为CRLF。
配置Gti Bash使用的终端模拟器,示例选择第一项默认的MinTTY,相比第二项是Windows自带的控制台终端更加方便。
配置额外选项:默认勾选开启文件系统缓存,和Git证书管理器。
默认不勾选实验选项。
开始安装。
安装完毕之后,可以在任意目录下右击鼠标看到Git Bash Here
的选项,点击进入Git Bash。
Git配置
使用git config
配置和查看全局的账号和邮箱。在第一次进行Commit操作时会输入账号对应的密码。注意,账号和邮箱需要配置的与GitHub一致才会在提交记录上看到自己的头像。
#配置全局的账号
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f
$ git config --global user.name "leo-zz"
#配置全局的邮箱
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f
$ git config --global user.email "10000@qq.com"
#查看配置信息
#账号和邮箱需要配置的与GitHub一致才会在提交记录上看到自己的头像。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f
$ git config --list
color.status=auto
color.branch=auto
color.interactive=true
user.email=10000@qq.com
user.name=leo-zz
...
Git常用命令:
Git卸载
在“控制面板”中的“卸载或更改程序”找到Git,右键删除即可。
GitHub仓库创建
仓库的地址
本地项目源码托管
创建文件夹存放仓库代码,在该文件夹右键,点击Git Bash Here
进入Git Bash,执行git clone
指令,将仓库代码下载到本地。
#执行git clone指令,将仓库代码下载到本地。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f
$ Git clone https://github.com/leo-zz/SpringBootDemo.git
Cloning into 'SpringBootDemo'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
先简单说下工作目录中文件的两种状态:已跟踪或未跟踪。
已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。
未跟踪文件是工作目录中除已跟踪文件以外的所有其它文件,它们既不存在于上次快照的记录中,也没有放入暂存区。
然后将项目源码redisDemo文件夹拷贝到从GitHub上克隆的文件夹SpringBootDemo中,进入SpringBootDemo文件夹,右键进入Git Bash。
执行git status
查看当前工作目录中文件的状态,可以看到新拷贝的redisDemo文件夹已经被标记为未跟踪。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f/SpringBootDemo (master)
$ git status
On branch master
Initial commit
Untracked files:
#可以看到新拷贝的redisDemo文件夹已经被标记为未跟踪。
(use "git add <file>..." to include in what will be committed)
redisDemo/
nothing added to commit but untracked files present (use "git add" to track)
执行git add
将未跟踪的redisDemo文件夹列入跟踪范围。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f/SpringBootDemo (master)
#将未跟踪的redisDemo文件夹列入跟踪范围
$ git add redisDemo/
#下面的警告是将文件的结尾符LF替换为CRLF
warning: LF will be replaced by CRLF in redisDemo/.gitignore.
The file will have its original line endings in your working directory.
...
执行git status
再次查看当前工作目录中文件的状态,可以看到redisDemo文件夹中的内容被标记为Changes to be committed:
,这说明该文件夹已被跟踪,并处于暂存状态。git add
命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f/SpringBootDemo (master)
$ git status
On branch master
Initial commit
#该文件夹已被跟踪,并处于暂存状态
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: redisDemo/.gitignore
new file: redisDemo/pom.xml
new file: redisDemo/src/main/java/com/leo/redisdemo/RedisdemoApplication.java
...
执行git commit
将暂存状态的文件进行提交,此处为了简单起见,添加 -m
选项,将提交信息与命令放在同一行执行。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f/SpringBootDemo (master)
#添加 -m 选项,将提交信息与命令放在同一行执行。
$ git commit -m 'redis demo first commit'
[master (root-commit) cc3a105] redis demo first commit
7 files changed, 339 insertions(+)
create mode 100644 redisDemo/.gitignore
create mode 100644 redisDemo/pom.xml
create mode 100644 redisDemo/src/main/java/com/leo/redisdemo/RedisdemoApplication.java
create mode 100644 redisDemo/src/main/java/com/leo/redisdemo/config/RedisConfig.java
create mode 100644 redisDemo/src/main/java/com/leo/redisdemo/util/RedisHashUtil.java
create mode 100644 redisDemo/src/main/resources/application.yaml
create mode 100644 redisDemo/src/test/java/com/leo/redisdemo/RedisdemoApplicationTests.java
执行git push
将本地分支的更新,推送到GitHub。第一次提交会要求输入GitHub的账号,并弹出框要求输入密码。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f/SpringBootDemo (master)
$ git push origin master
#输入GitHub的账号,并在下面的弹出框内输入密码。
Username for 'https://github.com': leo-zz
Enumerating objects: 24, done.
Counting objects: 100% (24/24), done.
Delta compression using up to 4 threads
Compressing objects: 100% (13/13), done.
Writing objects: 100% (24/24), 4.21 KiB | 431.00 KiB/s, done.
Total 24 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'master' on GitHub by visiting:
remote: https://github.com/leo-zz/SpringBootDemo/pull/new/master
remote:
To github.com:leo-zz/SpringBootDemo.git
* [new branch] master -> master
执行git status
再次查看当前工作目录中文件的状态,可以看到nothing to commit, working directory clean
,说明工作目录中已跟踪文件在上次提交后都未被更改过。
j2eeLe@DESKTOP-LNDCVD9 MINGW64 /f/SpringBootDemo (master)
$ git status
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
(use "git branch --unset-upstream" to fixup)
nothing to commit, working directory clean