GIT的方法,重要

阿左的小站 2020-06-04

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 是将整个仓库的内容都下载回来(第一次)

  • pull 是对指定的分支内容进行拉取(以后每次都可以pull)

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

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

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

将远端仓库的https地址或者ssh地址的地址添加个小名 ; git remote add nicen :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了,就不会污染了)

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

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

关于冲突问题

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

成员协作

成员协作,创建一个协作远端仓库(需要给成员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 :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  clone   :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(如果不从远端跟新代码,直接push会报错)
7.提交代码,          git push (将本地仓库代码推送到远端仓库), 但是不推荐简写, git push  origin master

第二次;
1. 更新代码,        git pull(拉取远端代码),
2. 切换分支,          (       切换分支前需要master主分支先commit下, 以免一些文件会污染分支)git checkout dev
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

相关推荐