git连接github手把手实践

git安装过程免述,网上一大堆。

github注册过程免述,网上一大堆。

背景:已安装完成的git客户端(自己win7 64位)  github注册账户一个

需求:  将本地Repository上传至github仓库;

     将远程github仓库clone到本地;

一、将本地Repository上传至github仓库;

1、git部分

     git客户端下,终端核心命令是两个git pull ; git push ;分别对应 拉取远端仓库文件 和 上推本地仓库文件。首先需要理解git的仓库机制,此处借用网上的图片:

所有git add上来的文件都是存放在stage块,只有在git commit的时候才会提交至master分支。注意,此时和github远程端还没有任何联系。到此处整个结构暂且留个印象。

开始初始化步骤:

进入 git bash设置提交人和邮箱:

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

--global表示全局,如果单个仓库设置可以不加,只会对本地当前仓库起效。

 git config --list 查看配置列表是否生效。

切换到需要建仓的目录,git init初始化一个空库(会在文件夹下看到一个.git文件夹,里面存放相关的管理信息,建仓的目录就是该仓库的名称),新建/拷贝 需要管理的代码文件到仓库目录下;

git add 新增文件名 :此时文件在对应结构图中的stage,此处可以多次add 最后一个commit;

git commit 新增/修改文件名/-a : 进行commit提交,提交完成后文件在对应结构图中的master分支;

命令执行时会进入message版本信息的填写处,一般提交要求信息必输。且此时能在gui下看到待提交的文件。

此处提交信息的录入方式是参考Linux下Vim的编辑方式,可以参考下相关知识;

i 录入信息 Esc退出录入模式 :wq 保存退出

到此为止,一个更新操作保存到本地仓库的步骤就完成了。接下来我们上传到github远端。

2、本地git与github远程端建立联系

首先需要github上建立一个Repository,这个很简单,不再细述;

有两种方式建立联系:

1)使用git bash

git remote add  远端仓库映射名称  github远端Repository地址 

如图:

2)使用git GUI

Remote-Add...:

name对应 远程仓库映射名称,即bash下的org

location对应github地址

注意:这两者连接方式是相通的,比如在bash上设置过后,启动GUI发现也是会生效的

 

至此git本地仓库和github建立关联完毕

3、代码数据上传

1)bash下

git push -u 远程仓库映射名称 本地分支;

例如本次:

2)GUI下

 Remote-push...

 

或者在仓库扫描完毕、提交后,直接点击下方的push按钮。

如果是以https访问,上传是会要求输入github用户名和密码的。

至此,本地仓库上传远程端结束。

二、将远程github仓库clone到本地;

1、bash命令

git init 建立本地自己的一个空仓库

git remote add 建立本地仓库和远程端仓库连接

git pull 远程仓库映射名称 本地仓库

将远程端代码文件clone本地

 

2、gui

选择clone

target处需要自己编写对应的仓库名,即红框处,并且!此处不需要自建对应的文件夹,否则会报已存在目录的错误,git会自己建一个自己输入仓库名为文件名的文件夹

clone即可。

 三、其他

1、SSH方式连接github

在GUI处生成公钥

如果没有口令可默认为空。

生成完毕后会在User下的.ssh文件夹生成以下两个文件:

在github端的setting下录入在GUI中生成的密钥

保存即可。

 测试:

 

 

四、版本管理

  常用命令:

  

  Git 全局设置
  git config --global user.name "Administrator"
  git config --global user.email "admin@example.com"

创建一个新存储库
git clone ssh://git@c7n-gitlab.longi-silicon.com:32222/operation-ithzero001/longi-msp-mechcost.git
cd longi-msp-mechcost
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

 

推送现有文件夹
cd existing_folder
git init
git remote add origin ssh://git@c7n-gitlab.longi-silicon.com:32222/operation-ithzero001/longi-msp-mechcost.git
git add .
git commit -m "Initial commit"
(git commit --no-verify -m 'info') git push -u origin master




推送现有的 Git 存储库
cd existing_repo
git remote rename origin old-origin
git remote add origin ssh://git@c7n-gitlab.longi-silicon.com:32222/operation-ithzero001/longi-msp-mechcost.git
git push -u origin --all
git push -u origin --tags

查看本地分支
 git branch
创建本地新分支:
 git checkout -b new_branch_name
创建远程对应分支(推送本地分支到远程):
 git push --set-upstream origin new_branch_name
删除本地分支:
 git branch -D branch_name


回退Git向前的分支版本

git reset

git reset [--soft | --mixed | --hard] [HEAD]

git reset –-hard HEAD~3 # 回退上上上一个版本 的 提交(注意是提交)
git reset --merge HEAD~1 # 回退上一个版本 的 合并(注意是合并)
git push origin dev --force   #强制push远程dev分支  直接丢弃回退

git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,
版本会递增,不影响之前提交的内容

git revert 和 git reset的区别 

1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 
2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。 
3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

 

 

创建新的分支版本(例如发版分支)
git branch dev                                   # 1、本地创建一个新的分支
git checkout dev                                # 2、切换到新创建的分支
git push origin dev                             # 3、将新的分支发布到gitlab上
git branch --set-upstream dev origin/dev  (--set-upstream参数已废弃)         # 4、跟踪远程分支  
git branch --set-upstream-to=origin/dev dev或者
git push -u origin dev

 

 

参考

   框架图摘自:

   廖雪峰的git教程 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013745374151782eb658c5a5ca454eaa451661275886c6000

   joshua317 https://www.cnblogs.com/joshua317/articles/4606328.html

 

posted @ 2018-07-11 16:08  白皇后  阅读(314)  评论(0)    收藏  举报