GIT的方法,重要
git remote 命令用来管理远程仓库
git remote add 添加远程仓库(实质上是添加远程仓库 URL 的别名)
git remote add origin https://github.com/xiaohigh/test2.git
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