git命令

使用指南:https://www.bootcss.com/p/git-guide/

github登录地址:https://github.com/login

2020,05,15shh和http的区别

1.clone项目:使用ssh方式时,首先你必须是该项目的管理者或拥有者,并且需要配置个人的ssh key。而对于使用https方式来讲,就没有这些要求。

2.push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key时设置了密码,则仅需要验证配对密码。而对于使用https方式来讲,每次push都需要验证用户名和密码。

github添加密钥

  1>右键空白处,选择Git Bash Here

  2>执行命令: ssh-keygen -t rsa 生成公钥和密钥

  3>执行命令完成后,默认会在window本地用户.ssh目录C:\Users\用户名\.ssh下面生成公钥和私钥

  4>密钥生成后需要在github上配置密钥本地才可以顺利访问,点击右上角的头像,选择Settings

  5>点击SSH and GPG keys,点击右侧的New SSH key

      在Title处给该公钥取个名称,在Key部分将id_rsa.pub文件内容添加进去,然后点击“Add SSH key”按钮完成配置。

 

 

 

常用git命令:

一、如果是新建项目:

1、将项目内容放到文件夹下面,执行:git init、git add、git commit

2、在github创建一个项目;

3、将本地仓库关联到github上:git remote add origin ssh地址

4、上传到github上:git push origin  本地分支:远程分支

 

二、如果是已有项目

下载工程  git clone   *******

      git clone   -b   分支名   *******

备注:

git克隆基本上是一个组合:

> git init(创建本地存储库)
> git remote add(将URL添加到该存储库)
git fetch(从该URL中获取所有分支到本地存储库)
git checkout(创建工作树中主分支的所有文件)

因此不必执行git init,因为它已经由git clone完成。

三、其他命令

1、提交代码

   提交到缓存区  git  add  文件

   提交到仓库区  git commit -m 'msg'

2、branch

  查看已有的本地分支                     git branch

      查看已有的本地及远程分支            git branch -a

  创建本地分支(只是创建,没有切换) git branch   被创建的分支名

      创建本地分支并关联远程分支             git branch --track 本地分支名   origin/远程分支名

      已有本地分支关联远程分支                git branch --set-upstream-to  origin/远程分支

  检出tag所在的分支          git branch -a --contains tag名

3、checkout

  切换分支                       git checkout       本地分支    

  切换分支,如果没有则创建     git checkout -b    本地分支 

    创建分支且代码来自远程分支  git checkout -b    本地分支  origin/远程分支 (这个命令必须先保存好已经修改的内容)

4、push 

    推送到远程,如果远程没有该分支则会自动创建          git push origin  本地分支:远程分支   

  推个空分支则会删除远程分支                                  git push origin  :远程分支

      删除远程分支   git push origin -d                   不能删除默认分支(想删除远程的master必须将默认分支切换到其他分支)

  删除本地分支   git branch -d  本地分支                   不能删除当前分支

5、pull

  拉取指定分支代码到本地   git pull origin  远程分支:本地分支

    注意:这个一个远程分支merge到本地分支的操作

 

6、查看历史版本:git log     (显示简单的历史版本信息:git log --oneline)

7、切换版本:git reset  --hard 版本号  

  回退版本:git push -f origin master   (慎用)

8、查看当前分支状态:git status

9、tag的理解

     tag就像是一个里程碑一个标志一个点,branch是一个新的征程一条线;
     tag是静态的,branch要向前走;
     稳定版本备份用tag,新功能多人开发用branch(开发完成后merge到master) 

     比如说,我想发布master历史的某个版本,但是并不知道这个版本在branch的哪个位置,打tag可以对这个版本进行标记,让我们能更快找到这个版本。 

 

 四、其他场景

本地删除了文件a,但是master上还有a,git pull origin master时发现本地没有a(适用于所有本地修改文件,然后pull的操作

解决办法:git  stash  将本地的改变先储存起来,然后再执行  git pull origin master

 

其他参考:https://blog.csdn.net/qq_36898043/article/details/79431168

git stash:备份当前工作区的内容,保存到git 栈中,从最近的一次commit中读取相关内容   
git stash pop:从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。获取之后,会删除栈中对应的stash。
由于可能会stash多次,git使用栈管理,我们可以使用git stash list查看所有的stash

 

五、.gitignore文件语法

1.在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
2.输入 touch .gitignore ,生成“.gitignore”文件。
3.在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。(注意格式)

场景:通常有些内容是不需要上传git

#注释           .gitignore的注释
*.txt           忽略所有 .txt 后缀的文件
!src.a          忽略除 src.a 外的其他文件
/todo           仅忽略项目根目录下的 todo 文件,不包括 src/todo
build/          忽略 build/目录下的所有文件,过滤整个build文件夹;
doc/*.txt       忽略doc目录下所有 .txt 后缀的文件,但不包括doc子目录的 .txt 的文件
 
bin/:           忽略当前路径下的 bin 文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin:           忽略根目录下的 bin 文件
/*.c:           忽略 cat.c,不忽略 build/cat.c
debug/*.obj:    忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj
**/foo:         忽略/foo, a/foo, a/b/foo等
a/**/b:         忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh    不忽略bin目录下的run.sh文件
*.log:          忽略所有 .log 文件
config.js:      忽略当前路径的 config.js 文件
 
/mtk/           忽略整个文件夹
*.zip           忽略所有.zip文件
/mtk/do.c       忽略某个具体文件

 

六、merge

1、场景1

本地1修改了内容并对远程分支进行了push操作;

本地2修改了内容并对远程分支进行了push操作;

这个时候,本地2在push时会报错;

解决办法:先pull,然后手动修改内容,再 git add、git commit、git push如下截图

 

posted @ 2019-09-05 21:30  whitewall  阅读(302)  评论(0)    收藏  举报