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

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
CSDN:https://blog.csdn.net/u014720022

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值