GitHub上传文件夹及Git命令
我已经有了自己GitHub,但是我怎么对我的项目进行上传呢,普通的上传只有上传单一的文件
windows要去下载Git,mac就啥也不用了。
然后开始使用Git Bash
Git要求每台电脑都要有自己的用户名(User Name)和邮箱(Email)
所以我就自己设置下,这些均为黑框框的操作,也就是命令行,但是不要怕,我们还是有图形界面的
git config --global user.name "your name" git config --global user.email "your email"
1.建立和上传SSH Key
找到你这台电脑的管理员账户
文件夹下有这个
用txt打开id_rsa.pub
然后到Github setting把这个填进去,Title随意
没有的话可以生成,mac下的命令是这个 ssh-keygen -t rsa -C "your_email",然后到相应文件夹下就可以找到相应的pub。
Windows的话打开git bash,输入ssh-keygen即可。
2.使用Git命令
在自己电脑里找到自己所要上传的文件夹,右键Git Bash here
git init
其文件夹下会建立一个.git文件夹
git remote add origin git@github.com:你的账户/你的仓库名称.git
注意不是https链接,而且不推荐用账号密码管理自己的git
推荐先把两边同步下,git pull表示把远端最新的版本给拉取下来
git pull --rebase origin master
git pull origin master
git add . git commit -m 'first_commit' git push origin master
git clone https://github.com/llvm/llvm-project
Git就是实现版本控制的工具,Coding界的时光机、抓罪犯利器
很多时候我们都可以输入git status去查看目前在哪了,可以解决大部分的问题
git status
我们可以看到有文件未被追踪,我们可以用 git add <file>,上文的.就是全部加一下
git add a.txt
git status
commit后就是你的改版信息,-m
是 message 的缩写
git commit -m "新增 a.txt"
我们可以通过git remote在本地repo管理远程repo地址
git remote add <remote 名称> <repo 地址>
名称一般为origin
git push可以将本地repo同步到远程repo,上文也用过
git push <远程名称> <分支名称>
git pull是和其他人一起协作一个repo时,A在本地repo commit了一个新版本并push到远程repo,B可以pull 将新版本同步到B的本地repo
git pull <远程名称> <分支名称>
如果你们拉垮了,分支冲突了,需要checkout保留你的或者他们的。如果你要覆盖掉别人的,一定要告知他。本来发生冲突就是件拉垮的事情
# 保留自己的 git checkout --ours <文件名> # 保留别人的 git checkout --theirs <文件名>
查看本地已有分支
git branch
删除本地某个分支
# 删除指定的分支,但是如果该分支有未合并的修改,Git会拒绝删除操作 git branch -d <branch_name> # 强制删除 git branch -D <branch_name>
如果只配置了需要输入账号密码可以使用以下命令存储下账号密码
git config --global credential.helper store
3.进阶命令
我们还可以使用git reset去回溯,可以先通过log去查看版本
git log --oneline
然后通过git reset,他又三个参数 --mixed
、--soft
、--hard,hard谨慎使用
git reset 版本号
git stash可以回复到版本初始的样子并把所有改动存储起来,再取出来的话pop就行了
git stash
git stash pop
git diff可以用来比较两个版本的区别
git diff <版本1> <版本2>
git log可以查看git的历史和版本号
git log
git log --oneline
git checkout回复单一档案至指定版本
git checkout <版本> <档案名称>
工作的时候会发现其实你本地的版本可能是不够的,可以用git remote去更新下
git remote update origin --prune
然后我们往往是新建一个分支,就是这样的
git checkout -b some-feature develop
建立bug修复是这样的
f. 开始Hotfix git checkout -b hotfix-0.1.1 master g. 完成Hotfix git checkout master git merge --no-ff hotfix-0.1.1 git push
删除本地分支,如果无法删除可以放心使用-D的
git branch -d 分支名称
回滚上一次提交
git reset --hard HEAD^
发现上次提交有误可以使用下面的语句避免重复commit,当然提交要-f
git commit --amend --no-edit
拉取第三方库
git submodule update --init --recursive
git rebase让分支更清爽,可以少掉merge,极其有用。这里推荐下git-interactive-rebase-tool,可以让rebase操作变得简单
git rebase -i HEAD~2
谨慎使用drop,建议使用squash和fixup让自己的分支更清新,确认无误可以强制push上去,谨慎使用
git push -f
修改分支后,有的时候部署会冲突,可是我们并不想保留本地的修改,可以使用以下命令,谨慎使用,git reset --hard会让修改丢失
git fetch --all
git reset --hard origin/master
其他一些高级操作请参照 文档,如果英语不错建议直接使用英语
使新.gitignore 生效
git rm -r --cached .
修改git仓库地址
git remote set-url origin <.git>
备份仓库
# 拉取所有分支 git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all git pull --all git push --mirror
以下为在mac下的操作
修改 .bash_profile展示分支
function git_branch { branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`" if [ "${branch}" != "" ];then if [ "${branch}" = "(no branch)" ];then branch="(`git rev-parse --short HEAD`...)" fi echo " ($branch)" fi } export PS1='\u@\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ '
vim之后source一下就是有效了
本文来自博客园,作者:暴力都不会的蒟蒻,转载请注明原文链接:https://www.cnblogs.com/BobHuang/p/8566917.html
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· Tinyfox 发生重大改版
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· 小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
· 近期最值得关注的AI技术报告与Agent综述!