GIT的方法,重要

git remote 命令用来管理远程仓库

git remote add 添加远程仓库(实质上是添加远程仓库 URL 的别名)

git remote add origin https://github.com/xiaohigh/test2.git

git push

git push 将本地仓库的某个分支推送到远程仓库

git push -u origin master
  • -u 关联(第一次加 u 之后建立分支链接, 后续可以直接使用 git push 进行提交)

  • origin 远程仓库的别名(可以推送小名,也可以推送https地址或者ssh地址)

  • master 本地的分支名

  • git remote -v   查看与github 建立的仓库连接地址

clone 与 pull

  • clone 是将整个仓库的内容都下载回来(第一次),下载到本地master,  创建本地分支dev,远端代码也会保存在分支dev中

  • pull 是对指定的分支内容进行拉取(以后每次都可以pull),在本地master拉取远端代码后, 分支dev没有出现更新的代码, 需要在分支dev中, git merge master合并本地master代码

  • 关于克隆. 一定要在一个非Git仓库的文件夹下进行,不然造成命令失效

git restore --staged 将暂存区的文件移除
git restore index.txt 将工作区修改的文件撤销

git remote -v   查看github 的关联地址

将远端仓库的https地址或者ssh地址的地址添加个小名 ; git remote add nicen git@github.com:h5c3-team/zhuzhi.git  或者 git remote add nicen   https://github.com/xiaohigh/test.git

git commit -m '注释内容'  ,必须是英文的引号

 

关于分支污染情况

情况一;master之前提交过1.txt, 然后在创建dev分支, 那么此时dev会有1.txt文件,正常情况
情况二; master中,已经创建dev分支,然后在master中创建了一个文件2.txt,没有提交本地仓库 
那么此时dev中也会有2.txt文件,此时污染了分支dev(如果msater提交了本地仓库,dev中就不会有2.txt了,就不会污染了)

每次在切换分支前,需要提交一下当前分支

如果当前分支修改文件,每次在切换分支前,需要提交一下当前分支,因为当前分支文件没提交,会自动在其他分支也会产生.
如果当前分支提交了,则其他的分支就不会产生修改的文件,则各个分支互相独立

关于冲突问题

成员一从远端master分支pull拉取了代码到本地master,切换到了分支dev1,合并代码到分支dev1(git  merge master),修改了1.html,然后提交(add , commit)到本地仓库,
合并到本地maser(git merge dev1), 然后在提交下 add, commit ,push推送到远端仓库了.

成员二,从远端拉取了代码到本地master,切换到了主分支dev2,合并代码到分支dev2(git  merge master),修改了1.html,然后提交到本地仓库,
合并到本地maser,此时需要跟新pull远端代码,  但是此时产生冲突,   
解决冲突方法,如果分支没用的修改代码可以删除,然后 add和commit,  如果有用(两者修改的),直接add和commit,然后push推送到远端仓库,冲突解决了

成员协作

成员协作,创建一个协作远端仓库(需要给成员write权限),成员一git push origin master(将代码推送到远端),然后
成员二要获取远端代码,git clone https://github.com/xiaohigh/test2.git (克隆仓库的地址)
然后他修改了代码并git push到远端后,如果成员一以要获取更新的代码, git pull origin master (拉取远端的代码)

每次push代码到远端,都先pull下

如果成员一修改了文件,推送到远端,而成员二,也修改了文件和提交本地仓库了,此时push不了远端,会报错,此时
成员二需要将远端的文件pull下,将远端的代码更新到本地,然后再push下,推到远端
(pull后,会进入vim模式,直接:wq 保存退出即可)

关于https地址推送,git有缓存密码机制,但是有缺陷

ssh地址推送,是不需要密码的,需要在github配置下

如何将之前clone(https)的方式改成ssh方式提交呢(可以push时不需要密码)

1. 获取本地和远端连接的地址             git remote -v
2. 将ssh的地址添加个别名nicen,            git remote add nicen git@github.com:h5c3-team/zhuzhi.git
3.然后第一次本地修改代码后,push到远端             git push -u  nicen  master(此时是免密推送)
4.然后第二次本地修改代码后,push到远端            git push (即可),一般不推荐简写  git push  nicen master 

clone远端仓库代码的两种方式

两种方式clone远端代码,
第一种是,git clone  https://github.com/h5c3-team/zhuzhi.git   index      (  https地址,后面可以跟个参数,文件夹名称),需要输入账号密码(git有密码缓存机制,也不用输入密码,但是push远端需要密码)

从git远端下载分支代码

git clone -b branchname https://github.com/licanhui2/growup.git
命令格式如上,-b后面接分支名,最后是git地址。


第二种, git  clone   git@github.com:h5c3-team/zhuzhi.git   item         (ssh地址,后面可跟参数,文件夹名称),需要配置免密登录,以后拉取代码免密

git工作流程

第一次:
1.得到 Git 远程仓库的地址和账号密码,将代码克隆到本地(地址换成自己的),              git clone https://github.com/xiaohigh/test.git
2.切换分支dev,               ( 切换分支前需要master主分支先commit下, 以免一些文件会污染分支)  ,git checkout -b dev(创建并切换到分支), 然后本地分支和远程分支关联
3.开发代码
4.分支dev本地提交,           git add -A(添加到暂存区)     git commit -m '注释内容'(提交到本地仓库)
5.合并到主分支              git checkout master(切换到主分支)     git merge dev(将分支dev合并到主分支)
6.更新本地代码,         git pull origin master(如果不从远端跟新代码,直接push会报错)
7.提交代码,推送到远端分支          git push (将本地仓库代码推送到远端仓库), 但是不推荐简写, git push  origin master,  或者推送到远端分支, git push origin 分支名

第二次;
1. 更新代码,        git pull  origin master(拉取远端代码), 在本地master拉取
2. 切换分支,          (       切换分支前需要master主分支先commit下, 以免一些文件会污染分支)git checkout dev,合并主分支最新的代码 git  merge master
3. 开发功能
4. 提交                      git add -A(添加到暂存区)     git commit -m '注释内容'(提交到本地仓库)
5. 合并分支 ,            git checkout master,    git merge xiaohigh
6. 更新代码              git pull (如果不从远端跟新代码,直接push会报错)
7. 提交代码,推送到远端分支              git push (将本地仓库代码推送到远端仓库)  但是不推荐简写, git push  origin master, 或者推送到远端分支, git push origin 分支名

 然后gitbug的远端各个分支合并到master, 然后本地master再去拉取远端master分支的最新代码

原文地址:https://www.cnblogs.com/fsg6/p/13043675.html