git使用

git使用

总结一下自己遇到的各种场景git的使用,不间断更新。

基本使用

clone

使用git clone命令将远程仓库拷贝一份到本地

  • 下载他人的代码:git clone [email protected]:torvalds/linux.git,此时不能向这个仓库提交修改,相当于只读,在本地使用or测试学习。可以通过git pull强制同步远程仓库的更新。
  • 如果不关心这个仓库的历史,可以加上--depth=x,只下载最后x个版本。
  • 下载自己的仓库,此时应该在本地的git中配置好了相关信息并且将SSH公钥上传至github。这时可以对这个仓库进行更新操作。

pull,push,fetch

  • git push将本地commit同步到远程。
    • --allpush all branch
    • -f强制推送,当远程分支与本地分支冲突时。(例如:在本地回滚了已经在远程仓库中的commit)
  • git pull从远程拉取更新,直接刷新到工作区
  • git fetch从远程拉取更新到origin/下,自己rebase or merge。
    git使用_第1张图片

整理commit

压缩commit

https://blog.csdn.net/weixin_51290195/article/details/124619004

TODO

rebase

多人协作时,定期rebase。
TODO

将push-remote与fetch-remote分离

https://stackoverflow.com/questions/31747072/will-remote-url-for-fetch-and-push-be-different

场景:

  1. 在给开源仓库做贡献时,本地push到自己的fork仓库中,但是fetch同步源仓库的更新。
  2. 做Lab,想push到自己的github仓库中,同时fetch拉取源仓库的更新。

此时,可以设置个人仓库为push远程地址,而设置主仓库为fetch远程地址:
git使用_第2张图片

user@ubuntu:~/Labs/xv6-labs-2023$ git remote -v
origin  git://g.csail.mit.edu/xv6-labs-2023 (fetch)
origin  git://g.csail.mit.edu/xv6-labs-2023 (push)
user@ubuntu:~/Labs/xv6-labs-2023$ git remote set-url --add --push origin  [email protected]:USERNAME/xv6-labs-2023.git
user@ubuntu:~/Labs/xv6-labs-2023$ git remote -v
origin  git://g.csail.mit.edu/xv6-labs-2023 (fetch)
origin  [email protected]:USERNAME/xv6-labs-2023.git (push)

可视化

log

git log --graph --pretty=oneline --abbrev-commit在终端中查看当前分支情况,
git log --graph --pretty=oneline --abbrev-commit --all在终端中查看所有分支情况。

插件

vscode插件不是免费的。
Jetb系自带,但是软件本身不是免费的。

你可能感兴趣的:(git)