Git学习

基本的Linux命令行命令

改变目录

1
2
cd 目的目录 # 去往目的目录
cd.. # 返回上级目录

显示信息

1
2
pwd # 显示当前所在目录
ls # 列出当前目录中的所有文件,

创建与删除

1
2
3
4
5
touch index.js # 新建一个名为"index.js"的文件
rm index.js # 删除一个名为"index.js"的文件
mkdir # 新建目录
rm -r # 删除文件夹
mv 文件名称 scr 目标目录 # 移动指定文件位置

终端相关

1
2
3
4
5
6
reset # 重置终端
clear # 清屏
history # 查看历史命令
help # 帮助
exit # 退出
# 表示注释

Git配置

查看配置

所有配置文件都保存在本地

相关配置文件位置

Git安装目录下的 Git\etc\gitconfig

Linux命令查看配置

1
2
3
4
5
6
7
8
# 查看配置
git config -l

# 查看系统配置
git config --system --list

# 查看用户本地配置
git config --global --list

设置配置

1
2
git config --global user.name "用户名"
git config --global user.email "邮箱"

Git理论核心

工作区域

Git核心

工作区(Workspace/Working Directory):工作区,平时存放代码

暂存区(Stage/Index):暂存区,用于临时存放改动

仓库区(Repository):仓库区(本地仓库),安全存放数据的位置,有所有版本的数据.其中HEAD指向最新放入仓库的版本

远程git仓库(Remote)

工作流程

  1. 在工作目录中添加,修改文件

  2. 将需要进行版本管理的文件放入暂存区域

    1
    git add . # 将所有文件添加到暂存区
  3. 将暂存区域的文件提交到git仓库

    1
    git commit

Git项目搭建

本地仓库搭建

创建本地仓库的方式有两种:

  • 创建全新仓库

    1
    2
    # 在当前目录新建一个Git代码库
    git init

    执行后会看到隐藏目录.git

  • 克隆远程仓库

    1
    2
    # 在当前目录克隆一个库
    git clone [url]

Git文件操作

文件的四种状态

  • Untracked:未跟踪,不参与版本控制
  • Unmodified:文件已入库,未修改,即版本库中文件快照内容物文件夹中完全一致
  • Modified:文件已修改,但没有其他操作.使用 git add 可进入暂存状态,使用 git checkout 则丢弃修改
  • Staged:暂存状态,执行 git commit 则将修改同步到库中,执行 git reset HEAD filename 取消暂存

用命令行查看文件的状态

1
2
3
4
5
# 查看所有文件状态
git status

# 查看指定文件状态
git status [filename]

用命令行改变文件状态

1
2
3
4
5
# 添加所有文件到暂存区
git add .

# 提交暂存区内容到本地仓库
git commit -m "描述"

忽略文件

在目录下建立 .gitignore 文件

  • 忽略文件中的空行或以井号( # )开始的行将会被忽略.

  • 可以使用Linux通配符.例如:星号( * )代表任意多个字符,问号( ? )代表一个字符,方括号([ABC])代表可选字符范围,大括号({string1,string2..})代表可选的字符串等.

  • 如果名称的最前面有一个感叹号( ! ),表示例外规则,将不被忽略.

  • 如果名称的最前面是一个路径分隔符( / ),表示要忽略的文件在此目录下,而子目录中的文件不忽略.

  • 如果名称的最后面是一个路径分隔符( / ),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略).

    1
    2
    3
    4
    5
    6
    #为注释
    *.txt # 忽略所有.txt结尾的文件
    !lib.txt # 但lib.txt除外
    /temp # 仅忽略项目根目录下的TODO文件,不包括其它目录temp(向前忽略)
    bui1d/ # 忽略bui1d/目录下的所有文件(向后忽略)
    doc/*.txt # 会忽略doc/notes.txt但不包括doc/server/arch.txt

Gitee操作

设置本机绑定SSH公钥

1
2
3
# 进入C:\user\Administratory\.ssh目录
# 生成公钥
ssh-keygen -t rsa

将公钥注册到码云信息中

id_rsa.pub 文件中的内容添加到SSH公钥中

使用Gitee创建仓库

许可证:开源是否可以随意转载,开源但是不能商用

Git分支

查看当前分支

1
2
3
4
5
# 查看当前本地分支
git branch

# 查看远程分支
git branch -r

管理分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 新建分支
git branch [branch]

# 新建分支,且切换到该分支
git checkout -b [branch]

# 切换分支
git checkout [branch]

# 合并指定分支到当前分支
git merge [branch]

# 删除分支
git branch -d [branch]

# 删除远程分支
git push origin --delete [branch]

# 提交远程分支
git push -u [branch]

Unity Git

出现问题

1
fatal: detected dubious ownership in repository at

解决方法

1
2
# 因为git心的权限安全策略导致的报错,可以按提示把目录添加到信任列表
git config --global --add safe.directory "*"

.gitignore配置

1
2
3
4
5
6
7
8
9
10
11
12
13
Library/
Temp/
*.sln
*.csproj
*.sln
*.userprefs
*.unityproj
*.DS_Store
.vs/
.vsconfig
Logs/
UserSettings/
Packages/

初始化本地仓库

1
2
3
4
5
6
# 初始化git
git init

# 将本地现有的文件上传到本地仓库
git add .
git commit -m "init project"

连接远程仓库

1
2
3
4
5
6
7
8
9
# 以gitee为例
# 添加远程仓库地址到本地
git remote add origin [仓库地址](如git@gitee.com:lu-bei-lu-chen/unity-demo.git)

# 强制将远程仓库中的东西拉取到本地
git pull origin master --allow-unrelated-historie

# 推送到master分支
git push origin master