Git(四)
git本地代码关联远程仓库的两种方式
一、git本地已有项目关联远程仓库
情况:
- 本地已有项目
- 远程有个仓库(一般是新建的空仓库)
目的:
本地项目关联远程仓库
首先要把本地项目变成git管理的,也就是建立一个本地仓库,可以在项目目录下面使用git init命令初始化仓库,初始化成功之后会在仓库里面看到一个.git文件
.git文件里面记录仓库的历史信息,版本分支等等。
然后我们在gitee上新建一个仓库tools去关联它。
注意:关联远程gitee或者Github平台之前,需要把git和远程平台配置好,https、ssh等方式,选一种就可以,上一节详细介绍了。
这里采用ssh配置方式举例:
需要把本地的ssh公钥添加到gitee,本地公钥在C:\Users\西红柿\.ssh下面的id_rsa.pub文件,
注意id_rsa文件是私钥,不要透露给别人。
将公钥添加到gitee:
接下来就是本地仓库关联远程仓库:
这里的gitee是任意指定的远程remote名称,一般为origin,后面会细讲;
关联之后可以查看以下关联的远程仓库和当前拥有的权限:
然后就可以pull远程仓库:
报了个错,没有明确分支,应改使用git pull gitee master (这里的gitee就是对应上面关联的远程remote名称)
注意:在push之前进行git add .,git commit -m '注释';第一次关联仓库,push前当前目录需要创建.gitignore文件,
并且.gitignore文件中需要添加一句.gitignore忽略文件本身,合作开发的时候不建议将.gitignore文件进行git管理,会影响别人的提交。
这了一定要用git add . 不能使用git add *
git add . 和 git add * 区别
git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入
这个是因为我之前在本地提交过一个文件,远程仓库也提交过一个文件,git认为这是两个分支。
可以使用git pull gitee master --allow-unrelated-histories,--allow-unrelated-histories会允许关联两个分支的历史分支
ok,然后将本地项目代码push到remote
还是一样,需要明确分支:
到此就pull和push都可以用了。
转载:https://www.cnblogs.com/alinainai/p/11080655.html
二、将远程的代码clone到本地仓库
情况:
- 本地已有代码,并不是git项目
- 远程有个仓库(一般是新建的空仓库)
目的:
本地代码关联远程仓库
① 将git和远程仓库进行配置https、ssh等方式选一种,将远程代码clone到本地
② 将本地现有代码拷贝放入远程clone下来的本地仓库中
③ 在本地仓库根目录添加.gitignore忽略文件配置
④ git add .
⑤ git commit -m '注释'
⑥ git push 远程仓库/分支
三、.gitignore例子
### Java template *.class # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.ear # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* ### JetBrains template # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 # User-specific stuff: .idea/workspace.xml .idea/tasks.xml .idea/dictionaries .idea/vcs.xml .idea/jsLibraryMappings.xml # Sensitive or high-churn files: .idea/dataSources.ids .idea/dataSources.xml .idea/dataSources.local.xml .idea/sqlDataSources.xml .idea/dynamic.xml .idea/uiDesigner.xml # Gradle: .idea/gradle.xml .idea/ # Mongo Explorer plugin: .idea/mongoSettings.xml ## File-based project format: *.iws ## Plugin-specific files: # IntelliJ /out/ # mpeltonen/sbt-idea plugin .idea_modules/ # JIRA plugin atlassian-ide-plugin.xml # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties fabric.properties ### Windows template # Windows image file caches Thumbs.db ehthumbs.db # Folder config file Desktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msm *.msp # Windows shortcuts *.lnk ### Maven template target/ pom.xml.tag pom.xml.releaseBackup pom.xml.versionsBackup pom.xml.next release.properties dependency-reduced-pom.xml buildNumber.properties .mvn/timing.properties # ignore eclipse files .project .classpath .settings *.iml .metadata # ignore mac files .DS_Store # ignore .gitignore //这个很重要,团队开发建议忽略本身
注意:经过测试,.gitignore文件本身添加.gitignore忽略自身不起作用,需要采用如下方式:
如果需要自己本地忽略某些文件,而不影响其他人的.gitignore。需要在**.git/info/exclude**文件设置,语法和.gitignore一致。
两个文件区别在于,exclude只用于设置本地需要忽略的文件,而.gitignore是公共需要排除的。
参考:https://blog.csdn.net/qq_43305312/article/details/126779874