需求1:

描述:

Windows系统,在git中生产SSH key

由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在此之前,必须要生成SSH key。

第1步:创建SSH Key。在windows下查看​​[c盘->用户->自己的用户名->.ssh]​​​下是否有​​id_rsa​​​、​​id_rsa.pub​​​文件,如果没有需要手动生成。
打开git bash,在控制台中输入以下命令。

ssh-keygen -t rsa -C "gitlab.foton.com.cn"

密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa。同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时​​[c盘>用户>自己的用户名>.ssh]​​目录下已经生成好了。

第2步:登录github。打开setting->SSH keys,点击右上角 New SSH key,把生成好的公钥​​id_rsa.pub​​放进 key输入框中,再为当前的key起一个title来区分每个key。

需求2:

​将远程仓库上的文件同步到本地(clone)

git clone git@test.git

需求3:

​将本地文件上传到远程仓库上

进入到需要提交的文件所在目录,输入如下指令:

  git add .      
# add后跟空格加一点会将该目录下的所有文件添加至上传列表,若需上传指定文件只需将点改为指定文件的名称带后缀
git commit -m "提交描述"
git remote add origin git@test.git
# 如果文件所在的本地仓库和远程仓库从未连接过需要输入下面语句将本地与远程仓库联系上
git push -u origin master
# 将文件提交到主分支上

需求4:

为版本打tag

进入到项目根目录,输入如下指令

   git tag
# 查看历史tag
git tag -h
# 查看git的相关tag操作
git tag -a v1.0.0 -m "版本tag描述"
# 添加版本tag 其中v1.0.0为tag名称
git push origin v1.0.0
# 将本地tag推送到远程仓库上 其中的v1.0.0就是上面的tag名称

需求5:

在网页上面新建项目后,完成初始化操作

进入到需要提交的文件所在目录,输入如下指令:

  git clone git@test.git
# 下载文件到本地
cd fileStorage
# 进入文件目录
touch README.md
# 新建README文件
git add README.md
# 添加README文件到提交列表
git commit -m "add README"
# 提交说明
git push -u origin master
# 提交文件到主分支

需求6:

​本地已有相关文件夹,在网页上面新建项目后,将本地文件推送到服务器

进入到需要提交的文件所在目录,输入如下指令:

   cd existing_folder
# 进入已有的本地文件目录
git init
# 初始化git到本目录
git remote add origin git@test.git
# 本地与远程仓库取得联系
git add .
# 添加文件的推送列表
git commit -m "Initial commit"
# 提交说明
git push -u origin master
# 推送到主分支

需求7:

预览打包项目(gh-pages)

进入到需要提交的文件所在目录,输入如下指令:

   cd Emoji-ChatRoom
# 进入项目目录 Emoji-ChatRoom,注意这里的项目名称得和远程仓库的项目名称相同,不同的话会上传不成功
git init
# 初始化git到本目录
git rm -r --cached dist
# 取消dist文件过滤,.gitignore文件中删除dist(重要步骤)
git remote add origin https://gitlab.com/git/Emoji-ChatRoom.git
# 本地与远程仓库取得联系
git add -A
# 添加文件的推送列表
git commit -m "init file"
# 提交说明
git push -u origin master
# 推送到主分支
git subtree push --prefix dist origin gh-pages
# 把 dist 目录推送到 gh-pages 分支
# 然后通过 https://gitlab.com/Emoji-ChatRoom 就可以访问了

需求8:

查看本地分支、查看远程分支、新建本地分支、推送本地分支到远程、切换分支、删除本地分支、删除远程分支

    git branch
# 查看本地分支
git branch -a
# 查看所有分支,包括远程,remotes为远程分支
git branch newbranch
# 新建本地分支
git checkout -b newbranch
# 新建本地分支并切换
git push origin newbranch
# 推送本地分支到远程
git checkout master
# 切换分支
git branch -d newbranch
# 删除本地分支 (要切换出要删除的分支才可以删除)

# 删除远程分支 方式1:git push origin --delete newbranch
# 删除远程分支 方式2:git push origin :newbranch

需求9:

​fetch更新本地仓库(更新远程代码到本地)

进入到需要提交的文件所在目录,输入如下指令:

  方法一:

    git fetch origin master 
# 从远程的 origin 仓库的 master 分支下载代码到本地的 origin master
git log -p master.. origin/master
# 比较本地的仓库和远程仓库的区别
git merge origin/master
# 把远程下载下来的代码合并到本地仓库,远程的和本地的合并

方法二:

   git fetch origin master:temp 
# 从远程的 origin 仓库的 master 分支下载到本地并新建一个分支 temp
git diff temp
# 比较 master 分支和 temp 分支的不同
git merge temp
# 合并 temp 分支到 master 分支
git branch -d temp
# 删除 temp

需求10:

开发中经常在错误的分支上改了大量代码,需要转移到正确到分支上

进入到项目根目录,输入如下指令:

   git statsh
# 将当前所以修改提交的本地一个储存库,使用此命令后当前分支将会是修改之前的状态
git checkout dev
git stash apply
# 切换分支,通过如下命令将储存库的代码拉取下来
# git stash pop 这个命令也可以实现,和上面不同的是会自动删除本地储存,不过出现冲突则不会删除
git stash list
# 查看本地储存
git stash drop
# 删除本地储存

需求11:

回滚代码到某次commit,开发过程中可能合并到不需要到分支,或个别原因需要回退

进入到项目根目录,输入如下指令:

    git reset --hard HEAD^
# 回退到上个版本
git reset --hard HEAD~3
# 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id
# 退到/进到 指定commit的sha码
git push origin HEAD --force
# 强推到远程

需求12:

在我们工作中,经常会需要建立很多开发分支,但是过一段时间自己都不记得那个分支是干什么的了,这里提供给git分支添加备注功能,方便管理

进入到项目根目录,输入如下指令:

   git config branch.branch_name.description "这里添加注释"
# branch_name 是需要加备注的分支名
git config branch.dev.description "家花不如野花香~"
# 例如给 dev 分支加备注
git config branch.dev.description
# 查看 dev 分支备注
npm i -g git-br
# 借助工具 git-br 查看分支备注
git br
# 查看所有分支备注