Git 文档
一、配置
1、编辑配置文件
vim ~/.gitconfig |
2、配置操作
(1) 设置
git config <配置信息名> |
(2) 查看
git config -l
(3) 删除
git config unset <配置信息名>
二、分支操作
1、创建分支
(1) 创建本地分支
git checkout -b <branch> |
(2) 创建远程分支
`git push origin <branch>:<branch>` |
2、删除分支
(1) 删除本地分支
git branch -d <BranchName>
(2) 删除远程分支
git push origin --delete <BranchName>
(3) 删除已被远程分支删除的分支
git remote prune origin
3、分支版本管理
(1) 版本回退
- 本地版本回退:
git reset [--hard] <head>
- 远程版本回退:
git reset [--hard] <head>
=>git push -f
(2) 远程分支打版本标签
git tag -a <版本号> -m <描述信息>
=> git push origin <版本号>
(3) 删除 tag
- 本地:
git tag -d tagname
- 远程:
git push -d origin tagname
4、分支推送
(1) 新的分支推送到远程并跟踪:git push --set-upstream origin <branch>
(2) 更新commit信息: git rebase -i HEAD~<n>
=>要修改的pick改为’reword’,保存=>更新描述信息,确认更新的文件信息是否有误,无误就git rebase --continue
5、分支暂存
git stash -u -> git stash pop
6、跟踪远程分支
git branch --set-upstream-to=origin/develop develop |
7、日志查看
(1) 查看 log 图:
git log --oneline --graph --decorate --all
(2) 查看所有成员的提交总数
git shortlog -sn
(3) 查看所有成员的未合并提交总数
git shortlog -sn --no-merges
(4) 查看所有分支的最新提交
git branch -v
(5) 查看所有分支的最新提交及对应的远程分支
git branch -vv
(6) 查询某个人某段时间的commit
git log --author=canace --since="2023-08-01"/until="yesterday"
三、分支合并
1、普通的合并: git merge <branch> --no-ff
2、合并某个commit: git cherry-pick <commit hash>
三、远程仓库操作
(1) 改变 git 远程仓库
git remote set-url origin git@gitlab.dreamdev.cn:ebag/live-experiment.git |
(2) 删除远程仓库文件或文件夹
git rm -r --cached file/folder name
=> git commit
=> git push
(3) fork 远程的上游仓库
查看远程分支状态:
git remote -v
确定一个将被同步给 fork 远程的上游仓库:
git remote add upstream <origin.git>
再次查看状态确认是否配置成功:
git remote -v
从上游仓库 fetch 分支和提交点,提交给本地 master:
git fetch upstream
把 upstream/master 分支合并到本地 master 上:
git merge upstream/master
四、初始化项目
1、 Create a new repository
git clone <repositry> |
2、 Push an existing folder
cd existing_folder |
3、 Push an existing Git repository
cd existing_repo |
五、提交代码模板
git status
=> git add <文件名>
=> git commit -m <描述>
=> git pull origin <远程主机名> :<远程分支名>
=> git push <分支>
六、一些 tips
1、推送不了代码可能的原因:
远程仓库已更新,本地代码没有及时更新,git pull 更新一下代码试试,不行就强推(不建议)
2、ping 不同 github.com 报 403
可能是设置了代理,shift+command+G
=> /private/etc
=> 复制 hosts 文件,把里面关于 github 的设置去掉,保存,替换回去 => 重启浏览器或命令界面,可以正常 ping 了
3、不小心上传了大文件,一直存在记录解决方法
(1) 找出历史提交文件中占用空间大的文件
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k |
(2) 重写commit,删除大文件
git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch <file-name>' --prune-empty --tag-name-filter cat -- --all |
(3) 强制 push
git push -f |
(4) 清理和回收空间
rm -rf .git/refs/original/ |
4、git 大小写不敏感,修改后找不到依赖
可以使用 git mv 命令替换一下
git mv [file] [newfile] |
5. git pull 报一堆 warning
切了 zsh,每次 git pull 就报下面的 warning,很多行,看着有点无语
hint: Pulling without specifying how to reconcile divergent branches is |
原因是 git pull 每次产生一个令人迷惑的 commit,会被认为是有问题的操作,根据提示,要解决这个问题可以在 git pull 的时候不要创建新的 commit,或者使用变基
# 局部 |
6. git pull 代理问题
早上拉代码看到这个错误,一看端口号是我科学上网的端口,应该是代理问题
error: RPC failed; curl 7 Failed to connect to 127.0.0.1 port 1080: Connection refused |
解决方法,取消全局代理 unset http_proxy
本文标题:Git 文档
文章作者:Canace
发布时间:2020-10-10
最后更新:2023-11-02
原始链接:https://canace.site/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/
版权声明:转载请注明出处
分享