Git(四)

git本地代码关联远程仓库的两种方式

一、git本地已有项目关联远程仓库

情况:

  1. 本地已有项目
  2. 远程有个仓库(一般是新建的空仓库)

目的:

  本地项目关联远程仓库

首先要把本地项目变成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到本地仓库

情况:

  1. 本地已有代码,并不是git项目
  2. 远程有个仓库(一般是新建的空仓库)

目的:

  本地代码关联远程仓库

① 将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

 

 

 

posted @ 2021-06-02 13:39  迷走神经  阅读(53)  评论(0编辑  收藏  举报