Bootstrap

git将本地代码提交到远程仓库

1.进入git bush

$ ssh-keygen -t rsa -C "[email protected]" 按Enter键+y

$cd ~

$cd .ssh/

$ll

$cat id_rsa.pub

 将ssh-ras复制到github创建ssh

 配置用户名和email

用户名和邮箱地址是本地Git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录。github的contributions统计就是按邮箱来统计的。

  • 查看用户名和邮箱地址
$ git config user.name
$ git config user.email
  • 修改用户名和邮箱地址
$ git config --global user.name "username"
$ git config --global user.email "email"
  • 查看git配置
$ git config --list

3将本地代码添加到远程仓库

#### 添加到远程仓库

1.进入工作目录

$git init 进行初始化

$git add 文件名    //git add .  代表目录下的所有文件

$git commit -m "文件描述"    提交到本地仓库

//本地仓库与远程仓库进行关联起来

$git remote add origin https://github.com/...../**.git

//push上去-u代表远程的意思第二次提交的话直接git push就可以

$git push -u origin master 

遇到问题

git添加远程库的时候有可能出现如下的错误,

img

怎么解决?

只要两步:

1、先删除

`$ git remote rm origin`

2、再次执行添加就可以了。 

提交代码

git init 将文件夹设置为本地仓库,只有这样才可以把本地的文件传入github仓库
git remote add origin https://github.com/HOngery/Selenium.git  将本地仓库与github仓库进行关联
git pull origin master  将GitHub上仓库的内容pull到本地仓库,两者保持一致 远程仓库创建redme.md
git add 需要上传的文件    添加文件到本地库
git commit -m “try again” 提交文件到本地库
git push origin master 上传文件

如果出现

$ git pull origin master
From https://github.com/Hongery/go_basic
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories


使用这个强制的方法

$git pull origin master --allow-unrelated-histories

后面加上 --allow-unrelated-histories , 把两段不相干的 分支进行强行合并

如果出现

error: failed to push some refs to '[email protected]:yangchao0718/cocos2d.git
hint: Updates were rejected because the tip of your current branch is behin
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

出现错误的主要原因是github中的README.md文件不在本地代码目录中

可以通过如下命令进行代码合并【注:pull=fetch+merge]
git pull --rebase origin master
### git常用操作

1、安装git

git config --global user.name 'XXX'

git config --global user.email 'XXX'

2、创建本地库

mkidir learngit //自定义文件夹
cd learngit

touch test.md //创建test.md文件
pwd //显示当前目录


3、常用CRT

git init //初始化代码仓库
git add learngit.txt                //把所有要提交的文件修改放到暂存区
git commit -m 'add a file'            //把暂存区的所有内容提交到当前分支
git status                       //查看工作区状态
git diff                         //查看文件修改内容
git log                         //查看提交历史
git log --pretty=oneline            //单行显示
git reset --hard HEAD^         //回退到上一个版本,其中(HEAD^^(上上版本),HEAD~100(往上100个版本))

commit id                      //(版本号) 可回到指定版本
git reflog                      //查看历史命令

其中说明【
工作区(Working Directory)
版本库(Repository) #.git
stage(index) 暂存区
master Git自动创建的分支
HEAD 指针

】

git diff HEAD -- <file>                  //查看工作区和版本库里最新版本的区别
git checkout -- <file>                  //用版本库的版本替换工作区的版本,无论是工作区的修改还是删除,都可以'一键还原'
git reset HEAD <file>                  //把暂存区的修改撤销掉,重新放回工作区。
git rm <file>                        //删除文件,若文件已提交到版本库,不用担心误删,但是只能恢复文件到最新版本


4、创建SSH Key,建立本地Git仓库和GitHub仓库之间的传输的秘钥

ssh-keygen -t rsa -C 'your email'                           //创建SSH Key
git remote add origin [email protected]:username/repostery.git      //关联本地仓库,远程库的名字为origin
//第一次把当前分支master推送到远程,-u参数不但推送,而且将本地的分支和远程的分支关联起来
git push -u origin master
git push origin master                                  //把当前分支master推送到远程
git clone [email protected]:username/repostery.git               //从远程库克隆一个到本地库


5、分支
git checkout -b dev                  //创建并切换分支
\#相当于git branch dev 和git checkout dev
git branch                         //查看当前分支,当前分支前有个*号
git branch <name>                  //创建分支
git checkout <name>                 //切换分支
git merge <name>                  //合并某个分支到当前分支
git branch -d <name>                //删除分支
git log --graph                      //查看分支合并图
git merge --no-ff -m 'message' dev       //禁用Fast forward合并dev分支

git stash                         //隐藏当前工作现场,等恢复后继续工作
git stash list                       //查看stash记录
git stash apply                     //仅恢复现场,不删除stash内容
git stash drop                      //删除stash内容
git stash pop                      //恢复现场的同时删除stash内容
git branch -D <name>                //强行删除某个未合并的分支

//开发新feature最好新建一个分支
git remote                        //查看远程仓库
git remote -v                      //查看远程库详细信息

git pull                          //抓取远程提交
git checkout -b branch-name origin/branch-name          //在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name  //建立本地分支和远程分支的关联

6、其他---标签
git tag v1.0                                    //给当前分支最新的commit打标签
git tag -a v0.1 -m 'version 0.1 released' 3628164         //-a指定标签名,-m指定说明文字
git tag -s <tagname> -m 'blabla'                     //可以用PGP签名标签
git tag                                       //查看所有标签
git show v1.0                                  //查看标签信息
git tag -d v0.1                                 //删除标签
git push origin <tagname>                        //推送某个标签到远程
git push origin --tags                            //推送所有尚未推送的本地标签 

 

;