Git使用介绍


Git使用

1.基础知识

pwd 显示目前的工作目录 print work directory

image-20221029171741131

ls 显示当前路径下所有文件

mkdir 产生新的文件夹make directory

touch 创建新文件

image-20221029172612650

rm 移除文件 remove file

mv 移动文件

git init 初始化空的git存储库

ls -a可以看到隐藏的文件

git status 查询当前存储库状态,如果有未被提交或更新的新文件,会提示文件

image-20221029174255210

image-20221029174550148

之后使用

1.git add

git add + 文件名 添加文件至 staging area区域,此时文件会有两份,一份在工作目录,一份在暂存目录,看不见

image-20221029194602574

之后通过commit提交到repository存储库

image-20221029195011330

要注意工作目录中的文件不是staging area(暂存目录)区域的文件,如果你在add文件到暂存目录后修改了工作目录中的文件,之后没有重新add文件,那么此时直接commit的话,推送的文件是暂存目录中没修改过的文件而不是你在工作目录又修改了的文件。就像这样:

image-20221029200407941

此时运行git add 命令的话,可以更新暂存目录中的文件,

此时运行git restore命令的话,可以将工作目录中的文件恢复成暂存目录中的文件状态

git restore –staged 将文件从暂存区撤销

image-20221029202931377

![image-20221029203003253](Git使用介绍/image-20221029203003253-1672111188291-9.png)

2. git commit

commit提交文件后,可以写提交注释,#开头的内容会被忽略,写完本次注释后按ESC结束输入,在底端输入wq(write & quit)后回车保存退出.

image-20221029204254104

main表示当前的分支,root-commit表示目前还没有任何commit

git log查看当前git的log信息

image-20221029204824932

git commit –ament file 合并纪录,会把从上次暂存仓库里更新到存储库的分支归并为一条

3.git ignore

有些不需要提交的文件或文件夹,比如可以自己生成的二进制文件夹,缓存文件夹什么的,可以在同级目录下新建一个名为.gitigonre文件,无文件格式。在文件中写入要忽略的文件夹和文件名,多文件时回车写下一个,#开头行代表注释。

image-20221030100639391

4.一步完成add和commit

git add .

add所有修改或更新的文件到暂存目录

image-20221030102139619

git commit -m “text”

带注释的更新,可以跳过后面的注释阶段,同时commit全部文件或更新

git add .

stage所有的改变

git add -u

除了新添加的文件stage所有的改变

git commit -a

除了新文件stage并commit所有的改变

5.revert & reset

git revert + 版本SHA-1 还原并存储为一个新的提交

revert and store as a new commit,相当于撤销了之前的操作

image-20221030164516000

HEAD表示当前版本的意思

git reset HEAD~ 回退到上一个版本,用于取消已缓存的内容。

Discard the last commit

git reset HEAD~n回退到前n个版本

discard the last n commits

6.git restore

git restore 文件名 : 撤消工作区的修改返回到最近一次add(缓存区)的版本或者最近一次commit(当前版本库)的版本

image-20221030165830379

7.远端提交

image-20221030223820322

2.UE5中使用

1.团队协作

每次工作前,先拉取pull远端的修改,拉取后确保成功了再工作。见标题3

第一次工作完成后,推送push本地的内容到远端,确保成功后就可以关闭。

日常推送见标题5

不要使用下面标题2的推送,用标题5的

2.第一次推送 push

先在GitHub中创建存储库,之后进入UE项目中

image-20221031185810764

image-20221031185929888

GitPath写自己安装git的路径,URL写当前要连接的仓库的地址。

image-20221031195335660

Git路径写自己安装git的bin文件夹下git.exe的路径

URL写要使用的Github仓库的地址,后面LFS的.gitattributes可以先不选,自己创建一个,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Unreal Engine file types.
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text

# Raw Content file types.
*.fbx filter=lfs diff=lfs merge=lfs -text
*.3ds filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.xcf filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text

# Anything in `/RawContent` dir.
/RawContent/**/* filter=lfs diff=lfs merge=lfs -text

第一次推送到远端存储库,遇到以下图片问题的,输入两张图片之后的命令行

image-20221031205402083

image-20221031205453662

1
2
3
4
5
6
7
8
git config --global http.sslVerify "false"

git config --global credential.helper manager

git config --global http.postBuffer 54288000

git config lfs.https://github.com/Backfire935/TPSGameProject.git/info/lfs.locksverify false //这行的地址根据自己当前使用的仓库地址改,别直接用

1
2
然后可以推送到远端
git push -u origin main

image-20221031205304687

3.拉取 pull

1
git pull origin master

4.VS中修改后推送

C++工程中,如果是创建了新文件,那么长这样

image-20221031211935882

然后写提交信息后直接按全部提交按钮就行,不过这是提交的本地。远端存储的话,去管理界面把按push就行

image-20221031212346544

https://www.cnblogs.com/delav/p/11118555.html

img

5.日常使用Git-bash推送

不论是蓝图还是C++工程 都可以用下面方法推送。

工程文件夹里右键 选择git-bash

1
2
3
4
5
6
1. git add . //修改添加到暂存区
2. git commit -m "first commit" //从暂存区添加到本地仓库。引号里是每次更新的介绍,可以写中文
3. git branch -M main //设置推送的分支为main
4. git remote add origin https://github.com/Backfire935/UserWidgetExchange.git //设置推送地址,设置一次就行 或者使用ssh传输 可能更稳
5. git remote add origin git@github.com:Backfire935/UserWidgetExchange.git //和上面那条二选一就行
6. git push -u origin main //本地仓库推送到远端仓库

只有1 2 6是每次推送都要执行的,3 4 5 第一次推送的时候执行一次就可以了。


文章作者: John Doe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 John Doe !
  目录