文章目录
1、git的工作区和文件状态
# git的工作区
工作区(本地操作的目录.git所在的目录)、暂存区(临时存放即将提交到仓库的内容.git/index)、本地仓库(.git/objects)
# git的文件状态
未跟踪 Untrack(指未被git纳管,可以通过git add xxx 来添加纳管)
未修改 Unmodified
已修改 Modified
已暂存 Staged
2、如何为git配置网络代理
# 要分别为 http 和 https 都设置代理
git config --global http.proxy http://xx.cc:4080
git config --global https.proxy http://xx.cc:4080
3、向新的gitlab项目中提交代码
#cd 本地项目文件目录,或者 在进入对应目录 右击打开open git bash here
cd D:\\GItlab项目库\利器库\go-http-proxy
# 初始化本地项目(执行成功后,会默认的生产master,执行完成后可以使用 git status查看)
git init
# 使本地和远程的仓库建立关联
# git remote add <远程仓库别名> <远程仓库地址>
git remote add origin http://gitlab.atstm.cc/ops/go-http-proxy.git
# 注意:为了解决git不会提交空目录的情况,先找到空目录,再给下面创建一个固定名称的隐藏文件.gitkeep
find . -type d -empty -exec touch {}/.gitkeep \;
# 提交到暂存区(add命令,可以使用通配符)
git add . # git add xxx.txt
# 添加commit注释(注意:只会将暂存区内的文件提交到本地仓库,不会提交工作区的其他文件到仓库)
git commit -m "首次提交"
# 将本地和远端仓库内代码进行合并(会让你写合并说明)(写完说明后,输入”:wq"退出)
git pull --allow-unrelated-histories origin main
# 提交代码到远程仓库
# git push -u <远程仓库别名> <分支名>
git push -u origin main
#Tips: 若是从其他如阿里云效等迁移,可能分支要改成 master 写法为: git push -u origin master
4、其他用法
git status # 查看当前仓库的状态
git log # 查看每次提交的日志
git log --oneline # 查看简洁的提交记录
# git reset的三种模式(作用:用于回退,撤销之前的提交的版本)
git reset --soft xxxcommit_idxx # 工作区和暂存区都不会被清空
git reset --hard HEAD^ # 回退到上一个版本,工作区和暂存区都会被清空
git reset HEAD^ # 默认不写就是--mixed,回退到上一个版本,工作区保留,暂存区删除
git reflog # 查看之前的版本,
git reset --hard xxxcommit_idxx # 强制回退到某某版本
# git diff命令(默认比较工作区和暂存区的内容)
git diff
git diff HEAD # 比较工作区与版本库的差异
git diff xxxcommit_idxx xxxcommit_idxx # 比较两个提交记录的差异
git diff HEAD^ file.txt # 查看指定文件的版本差异
# git rm 删除文件
git ls-files # 查看暂存区中的内容
git rm file2.txt # 从工作区和暂存区内删除file2.txt,最后不要忘记提交下,才能在版本库里删除。
git rm --cached file2.txt # 将该文件,只从版本库中删除,不在工作区和暂存区删除(就是本地还在)
# .gitignore git忽略文件
比如可能需要忽略的文件有:日志文件及日志文件目录、所有.class文件、所有.o文件、所有.env文件等等
echo *.log > .gitignore # 向.gitignore文件写入一个忽略文件的名字(忽略所有日志文件)
echo tmp/ >> .gitignore # 忽略文件目录
# 拉去远程仓库内容
git pull <远程仓库别名> <远程分支名>:<本地分支名> # 注意若是远程分支名和本地分支名相同,可以省略冒号后面的
5、git分支
# 查看分支列表
git branch # 查看本地分支
git branch -r # 查看远程分支
# 创建分支
git branch branch_name
# 切换分支(git checkout branch_name 推荐使用下面的)
git switch main
# 合并分支
git merge branch_name
# 删除分支
git branch -d branch_name # 删除已合并分支
git branch -D branch_name # 删除未合并分支
6、小知识点
git默认不会将空文件夹纳入版本控制里面来的
# 解决办法
find . -type d -empty -exec touch {}/.gitkeep \;
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论