克隆远程仓库到本地
git clone git@github.com:TANGKUO/HIS.git #会自动在当前目录下创建同名的仓库,然后克隆。远程仓库可以是自己的、也可以是他人的
同步更新到远程仓库
场景:要把本地仓库中的文件提交到远程仓库中,存储在远程仓库中,或者供其他人使用。
过程:先在github上新建一个同名的仓库,再把本地仓库同步到github仓库中
1、在github上新建一个仓库
一般都要有个README.md文件。
.gitignore是指定本地仓库同步到github上时,哪些类型的文件会被自动忽略|不同步|不上传,github已经给多种语言写好了模板,我们直接选择即可。比如java的大致如下:
# Compiled class file *.class # Log file *.log # Package Files # *.jar *.war *.zip *.rar
我们可根据需要修改。
许可证|协议指定他人对这个仓库可以进行哪些操作。可以点击右边的小叹号查看常用协议的内容。
github会自动把仓库标识为文件数最多的语言,比如仓库中.html文件最多,就把这个仓库标识为html项目;.java文件最多,就把这个仓库标识为java项目。
如果识别不正确,比如本来是java项目,但用的模板引擎有一大堆html文件,github把仓库标识为html项目,可以在项目中添加一个.gitattributes文件,和README.md一个级别,
*.html linguist-language=java *.css linguist-language=java *.js linguist-language=java
统计时,把.html、.css、.js文件都算作.java文件
2、添加远程仓库
git remote add github git@github.com:chenhongyong/HIS.git #给远程仓库起一个别名,常用的别名比如origin、github
尽量使用ssh,因为配置秘钥后ssh会自动验证用户,https需要自己输远程仓库而定用户名、密码。
要有远程仓库的私钥|用户名、密码。
3、同步本地仓库到远程仓库
git push github master #指定远程仓库别名、要同步的本地分支,会将指定的本地分支同步到远程仓库
git push master #如果当前仓库只与一个远程仓库关联,则可缺省远程仓库
git push -u github master #如果当前仓库与多个远程仓库关联,可以用-u指定一个默认的远程仓库,后续push未指定远程仓库时,默认push至默认的远程仓库
4、查看远程仓库信息
git remote #只列出远程仓库别名
git remote -v #列出远程仓库的详细信息,包括远程仓库地址
5、更新本地仓库
git pull github master:master #从远程仓库获取更新。远程仓库名 本地分支:远程分支。只更新本地对应的分支
git pull 远程仓库名 本地分支名 #如果之前该本地分支已经推送到过远程仓库,或者从远程仓库的某个分支获取过更新,即本地分支、远程分支有过关联|对应关系,可缺省远程分支名
git pull 远程仓库名 #如果分支有过关联关系,且双方都只有一个分支,则本地分支名也可以省略
git pull #如果当前本地仓库只关联了一个远程仓库,或者用-u设置了默认关联的远程仓库,可以缺省远程仓库名。这种用得多,平时一个项目哪有多个仓库、多个分支
git fetch的用法和git pull完全相同,都是从远程分支获取更新,不同的是:
git fetch 只是从远程分支获取更新,不会将更新自动合并到本地分支中,需要再执行git merge将更新合并到当前本地分支中。
git pull会自动将更新合并到本地仓库中。
6、移除与远程仓库的关联关系
git remote github #只是移除与本地仓库、远程仓库的关联关系,不再关联该远程仓库,并不是说物理删除远程仓库