用Git上传项目到GitHub及详细整理

本文介绍了Git客户端的使用,包括配置SSH、在GitHub创建库、项目初始化、添加文件、提交、推送上仓库等步骤。还列举了Git常用命令,如创建版本库、查看状态、版本回退、分支操作等,帮助用户掌握Git的基本使用方法。

Git客户端

https://gitforwindows.org/

配置SSH

1、查看个人用户的.ssh目录下有没有id_rsa和id_rsa.pub这两个文件,如果没有,则用下面的命令创建

 ssh-keygen -t rsa -C "email" //生成新的SSH秘钥,注意C必须为大写的才有效,后续要求输入密码,直接两个`Enter`键 即可,毕竟日常使用不需要这么麻烦。

2、登录GitHub,打开Settings>SSH and GPG keys>New SSH key,填上任意Title,在Key文本框里
   粘贴 id_rsa.pub 文件的内容(用记事本打开即可)。

调出git命令窗口

例如我们现在要上传一个名为MyGit的项目

1、在GitHub上创建一个名为MyGit的库

2、 在MyGit的文件目录下,右击,选择Git Bash here,输入git init 进行初始化

git init

3、配置GitHub的用户名和邮箱,告诉它,你是谁

查看
git config user.name
git config user.email

修改
git config --global user.name "Brainbg"
git config --global user.email "1057234389@qq.com"
如果你跳过了这一步,可能就会这么提示

4、添加文件

添加所有文件
git add .

添加单文件
git add <file> 
如:git add "README.md"

5、提交

git commit -m <message> //提交文件
如:git commit -m "第一次提交"

6、连接远程地址

git remote add origin "远程库地址"   

双引号可以省略
比如: git remote add origin "https://github.com/Brain-RD/MyGit.git"
或 git remote add origin https://github.com/Brain-RD/MyGit.git

7、推送上仓库

git push -u origin master

8、输入账号密码


gitignore文件

Git常用命令

注:<file> 表示一个文件 ,如 README.md

ctrl + L //清屏
ctrl + c //中断

创建版本库

git init 初始化版本库
git clone "远程库地址"  //克隆库到本地

查看状态

git status  //查看当前状态
git diff 

增删改查



git help <command>  //显示command的help,如:git help push
git show //显示已提交的信息
git add . //添加所有文件
git add <file> //添加单文件


查看log

git log //显示从最近到最远的提交日志
git log --pretty=oneline //显示commit id全部id的提交日志
git log --oneline //显示commit id前7位的提交日志
git log <file> //
git log -p <file> //
git log -p -2 //查看最近两次详细修改内容的diff
git log --stat #查看提交统计信息

版本回退

git reset --hard HEAD^  //回退到上一个版本 
git reset --hard <commit_id> //回到指定的版本(版本号没必要写全,前几位即可)
git reflog  //查看历史记录的版本号id(记录你的每一次命令,不论是否已经提交,都可用来进行版本回退时,查看版本号)
git status //当前状态
  • HEAD指向的版本就是当前版本,因此Git允许我们重新指定所有已提交的版本中的一个,使用命令git reset --hard commit_id。

  • 想要回退到哪个版本,可用git log查看提交历史。

  • 想要回到未来的哪个版本来,可用git reflog查看命令历史。

对比

git diff //是工作区(work dict)和暂存区(stage)的比较
git diff --cached //是暂存区(stage)和分支(master)的比较
git diff HEAD -- README.md //查看工作区和版本库里面最新版本的区别

撤销修改

git checkout -- <file> //把文件在工作区的修改全部撤销,让这个文件回到最近一次git commit或git add时的状态。
git reset HEAD <file> //把暂存区的修改撤销掉,重新放回工作区(该文件被 git add 后,可如此撤销,再用git checkout撤销工作区的修改)

删除

git rm <file> //删除文件
git checkout -- <file> //误删的文件恢复到最新版本,该命令是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

创建与合并分支

git branch //查看分支
git branch <name> // 创建分支
git checkout <name> //切换分支
git checkout -b <name> //创建+切换分支
git merge <name>  //合并某分支到当前分支(注意是当前分支,如果分支不对会出现其他问题)
git branch -d <name> //删除分支
git branch -D <name> //强制删除还没合并的分支

远程分支

git fetch origin dev(dev为远程仓库的分支名):原有主分支,不成功

git pull origin dev(远程分支名称):会直接与本地分支合并

git push --set-upstream origin 分支名


git checkout -b <local-branch> origin/<branch>:从远程仓库里拉取一条本地不存在的名为`MVP`的分支时
例:git checkout -b MVP origin/MVP

git clone -b <branch> <url>:拉取一条分支到本地,本地为空项目
例:git clone -b MVP git@github.com:Brainbg/LearnAndroid.git

git branch -m old_branch new_branch 将本地分支进行改名

git push origin -d <branch> 删除远程分支
例:git push origin -d LearnGraphics

git push origin  <branch> 推送分支到远程
例:git push origin Graphics

关联一个新的项目到某个分支

git remote add origin 远程url

git push origin 分支

解决冲突

git log --graph  //查看分支合并图。
git log --graph --pretty=oneline --abbrev-commit //美观地展示分支合并的提交图

git merge --no-ff -m "message" dev //合并某分支到当前分支,并生成新的commit
//合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

Bug分支

git stash //暂存工作区
git stash list //查看储存列表
git stash apply //恢复储存
git stash apply stash@{index} //恢复指定的stash

git stash drop //默认删除stash@{0}的stash
git stash drop stash@{index}//删除指定的stash

git stash pop //恢复储存同时把储存删除掉

git stash clear // 清空所有stash

多人协作

git remote //查看远程版本库
git remote -v //更详细查看远程版本库

git push origin master //推送主分支到远程库,需要指定分支
如:git push origin dev

git pull //拉取远程库到本地

git branch --set-upstream-to=origin/<branch> dev //创建本地dev分支与远程origin/分支的链接关系

变基

git rebase //变基,rebase操作可以把本地未push的分叉提交历史整理成直线

标签

git tag <name> //创建一个新标签,默认标签是打在最新提交的commit上的
git tag //查看所有标签
git tag <name> <commit_id> //给任意一个提交打上标签
git show <tagname> // 查看标签信息
git tag -a <tagname> -m <message> <commit_id> //打上标签并且写上说明
git tag -d <tagname> //删除标签
git push origin <tagname> //推送标签到远程库
git push origin --tags //一次性推送全部尚未推送到远程的本地标签
git push origin :refs/tags/<tagname> //删除远程库里的标签

远程库

git remote add origin <url> 
git remote rm origin //删除远程库

//同项目及关联多个远程库
git remote add github <url> //关联Github的远程库,取名github
git remote add gitee <url> //关联码云的远程库,gitee
//同项目推送多个远程库
git push github master
git push gitee master

//强制推送
git push --force
git push --force-with-lease

参考资料

Git廖雪峰
从远程仓库获取所有分支

作者:Brainbg(白雨)
GitHub:https://github.com/Brainbg
博客:https://www.brainbg.com/
简书:https://www.jianshu.com/u/94518ede7100
优快云:https://blog.youkuaiyun.com/u014720022

<think>好的,我现在需要帮助用户了解如何通过Git将本地文件提交到GitHub。首先,我得回忆一下自己之前学过的Git基本操作流程。用户的问题是关于commit和push的,所以应该从初始化仓库开始,到添加文件、提交更改,最后推送到远程仓库的步骤。 首先,用户可能已经在本地有一个项目文件夹,但不确定是否初始化了Git仓库。这时候第一步应该是使用git init命令来初始化仓库。引用中的第三条提到过git init的作用,所以需要包含这一步,并引用[^3]来支持。 接下来,用户需要将文件添加到暂存区。这里需要解释git add的用法,包括添加单个文件和所有文件的不同命令。比如git add filename和git add .,后者是添加所有更改的文件。这一步没有直接的引用支持,但属于基本操作,应该没问题。 然后是提交更改,使用git commit -m "message"。这里要强调提交信息的重要性,建议用户写有意义的描述,方便后续追踪。这部分也没有直接引用,但属于标准流程。 接下来是关联远程仓库。用户可能已经创建GitHub仓库,但需要将本地仓库与远程仓库连接起来。这里需要用到git remote add origin <url>,这里的URL是GitHub仓库的地址。引用中的第一条和第二条提到了push到GitHub,但具体命令可能需要进一步解释。比如引用[^1]提到上传代码到GitHub,所以关联远程仓库是必要的步骤,可能需要引用[^1]来支持。 最后是推送到远程仓库,使用git push -u origin main(或者其他分支名,比如master)。这里需要说明-u参数的作用是设置上游分支,方便以后直接使用git push。引用中的第二条提到了使用Sublime插件进行push,但这里应该用命令行更通用,所以可能引用[^2]来说明push的基本操作。 用户可能遇到的问题包括:没有安装Git、没有配置用户名和邮箱、远程仓库地址错误等。需要提醒用户先安装Git,并配置全局用户信息。这部分可能需要提到git config --global user.name和git config --global user.email,但引用中没有提到,需要作为补充说明。 另外,可能需要解释如何获取GitHub仓库的URL,比如在GitHub创建新仓库后提供的HTTPS或SSH链接。还有,如果用户遇到权限问题,可能需要检查SSH密钥是否设置,或者使用HTTPS时是否需要输入账号密码。 最后生成相关问题时,需要考虑用户可能进一步想知道的内容,比如如何撤销提交、如何处理冲突、如何克隆仓库等,这些都是常见的后续问题。 现在整理步骤,确保每个步骤都清晰,并且引用正确的来源。例如,初始化仓库引用[^3],push操作引用[^1]和。同时检查命令是否正确,比如git push -u origin main中的分支名称是否正确,现在GitHub默认分支是main,而不是master,所以需要确认这一点。 总结步骤应该是: 1. 初始化本地仓库:git init 2. 添加文件到暂存区:git add 3. 提交更改:git commit -m 4. 关联远程仓库:git remote add origin 5. 推送代码:git push -u origin main 同时,提醒用户首次推送可能需要登录GitHub账号,或者配置SSH密钥。这部分虽然没有直接引用,但属于常见问题,应该提及。 最后,生成相关问题时要考虑用户接下来的疑问,比如如何拉取更新、处理提交历史、解决冲突等。</think>### 如何通过Git提交本地文件GitHub 以下是分步操作指南: 1. **初始化本地Git仓库** 在项目根目录执行命令,创建本地仓库: ```bash git init ``` 该命令会生成隐藏的.git文件夹用于版本管理。 2. **添加文件到暂存区** 使用以下命令添加待提交文件: ```bash git add <filename> # 添加单个文件 git add . # 添加所有修改文件 ``` 3. **提交更改到本地仓库** 添加有意义的提交描述: ```bash git commit -m "初始化提交:添加核心功能模块" ``` 4. **关联远程仓库** 在GitHub创建新仓库后,复制其HTTPS/SSH地址并执行: ```bash git remote add origin https://github.com/用户名/仓库名.git ``` 5. **推送代码到GitHub** 首次推送需指定上游分支: ```bash git push -u origin main # GitHub默认分支名为main ``` 后续推送只需执行`git push`[^2] ![Git提交流程示意图](https://example.com/git-workflow.png) *图:Git本地仓库与远程仓库的交互流程* #### 注意事项 - 首次使用Git需配置全局身份标识: ```bash git config --global user.name "你的名字" git config --global user.email "你的邮箱" ``` - 若使用SSH协议推送,需提前配置SSH密钥对 - 遇到权限错误时,检查远程仓库地址是否正确
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值