1. 进入git 终端
找到需要上传到github/gitlab 的文件所在文件夹,鼠标右键 "git bash here",进入git 终端
2. 绑定用户
git config --global user.name "your name"
git config --global user.email "your email@163.com"
git config -l
可以查看配置信息
3.设置SSH key
3.1 生成密钥
ssh-keygen -t rsa -C "your email@163.com"
3.2 去提示的路径下的.ssh
文件夹下找到 id_rsa.pub,打开id_rsa.pub,复制所有内容
3.3 打开你的Github - Setting - SSH keys - 点击Add SSH key - 粘贴id_rsa.pub内的内容,保存即可。
4.打开Github, 创建一个仓库,就可以将本地的文件上传到仓库了。
Git 本地仓库的三大区域:工作区、暂存区、版本区4.1 将本地文件上传到远程仓库
git init
-
git status
# 查看当前文件状态,有修改,但未添加到缓存 时显示为红色,git add 之后显示为绿色 -
git add .
# 添加修改到暂存区
如果要撤销暂存区的修改:git reset -- [文件名]
或者git rm --cached [文件名]
命令 -
git remote add origin https://github.com/XXX/text.git
# 连接远程仓库 -
git branch -a
# 查看分支,*表示当前本地分支 -
git branch -vv
# 查看当前本地分支指向远程仓库的分支 -
git branch –D 分支名
# 删除本地未合并的分支 -
git push origin –delete 分支名
#要删除服务器远端的分支,则执行如下所示的命令:
当前本地分支与其指向的远程仓库分支一致时才可以将本地git缓存提交到远程仓库
-
git checkout 分支名
# 但分支不一致时,需要切换到指定分支 -
git checkout -b 分支名
# 创建一个新的本地分支 -
git commit -m "commit log"
把暂存区的修改提交到版本区,生成一个新的版本
当有多个commit时,如果不需要太多commit的记录,可以合并commit记录
关于查看提交历史记录的命令,有些常用的选项介绍一下:
git log [分支名]
查看某分支的提交历史,不写分支名查看当前所在分支
git log --oneline
一行显示提交历史
git log -n
其中 n 是数字,查看最近 n 个提交
git log --author [贡献者名字]
查看指定贡献者的提交记录
git log --graph
图示法显示提交历史
-
git log
# 用来查看版本区的提交(commit)历史记录 -
git rebase -i HEAD~N
# 合并前N个commit记录squash:将该commit和前一个commit合并(缩写:s)
- pick:保留该commit(缩写:p)
- reword:保留该commit,但我需要修改该commit的注释(缩写:r)
- edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
- fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
- exec:执行shell命令(缩写:x)
- drop:我要丢弃该commit(缩写:d)
提交命令之后会进入修改界面,将需要删除的commit 的前面的 pick,修改为s,删除相应的log, 保存文件
-
git log
# 这时就只剩下修改后的commit记录了, -
git push
# 将本地新增的提交推送到 (GitHub) 远程仓库中 -
git push -f
# git rebase 之后通常git push会报错,需要强制推送
4.2 在另一台电脑开始工作
-
git pull
# 首先将远程仓库的最新代码更新到本地
本地修改………………
git status
git add .
git status
git commit -m"XXX"
git push
新的一天搬砖结束 ………………
4.3 版本回退
如果发现 文件内容有误,怎么做?可以修改此文件然后再次添加到暂存区、提交、推送,也可以撤销最近一次提交,修改文件后重新提交推送。
git reset --soft HEAD^
撤销最近的一次提交,将修改还原到暂存区。
HEAD^ 表示撤销一次提交
HEAD^^ 表示撤销两次提交
撤销 n 次可以简写为 HEAD~n
4.4 本地仓库 commit 变化记录
假设此时发现情况不对,之前的那次版本号为 5c04 的提交是正确的,刚才的版本回退操作全都是误操作,怎么办?再次执行一次版本回退吗?当然不需要啦,我们有 git reflog
命令,它会记录本地仓库所有分支的每一次版本变化。实际上只要本地仓库不被删除,随你怎么折腾,都能回退到任何地方。reflog
记录只存在于本地仓库中,本地仓库删除后,记录消失。
git reset --hard [版本号]
回退到 5c04 那个版本
4.5 其他命令
-
git diff
查看工作区被跟踪的文件的修改详情(只有在版本区中存在的文件才是被跟踪文件) -
git diff --cached
查看暂存区的全部修改 -
git log
查看提交记录, 十六进制序列号就是提交版本号,这是很重要的信息,每个提交都有自己单独的版本号
git log -
git branch -avv
查看全部分支信息
推送前
上图有三行信息,依次说明:
第一行,开头的星号表示当前所在分支,绿色的 master 是分支名,之所以是绿色,也是因为它是当前所在分支。后面第二项是版本号,第三项中括号里面蓝色的字,表示此分支跟踪的远程分支的名字,当然啦,这也是克隆远程仓库到本地时的默认设置 -- 创建 master 分支并自动跟踪远程同名分支;冒号后面黑色文字表示本地分支领先其跟踪的远程分支一个提交。最后一项是提交时填写的备注信息。
第二行,是 Git 指针信息,它指向远程仓库的 master 分支,这行信息暂不重要。
第三行,远程分支信息,详见第一行的解释。
-
推送成功后执行
git branch -avv
查看分支情况:
推送成功
可以看到,本地分支 master 与远程分支 origin/master 的版本号一致
网友评论