GitHub与Git命令使用笔记
文章目录
- GitHub与Git命令使用笔记
- 上传本地的新项目到github
- 1. 创建新的GitHub仓库
- 2. 初始化本地项目目录
- 3. 将本地仓库关联到GitHub
- 4. 推送本地代码到GitHub
- 上传本地项目到GitHub时发生冲突
- 将默认分支名称从master改为main
- git 把远程项目拉到本地,并和本地项目合并
- 1. 在本地项目中添加远程仓库
- 2. 拉取远程仓库的内容
- 3. 检查远程分支
- 4. 切换到你想合并的分支
- 5. 合并远程分支
- 如果本地的更改是有效的,需要合并处理冲突
- 1. 提交更改
- 2. 贮藏更改
- 3. 放弃本地更改
- 6. 推送合并更改
上传本地的新项目到github
1. 创建新的GitHub仓库
- 在GitHub的首页或任意页面,点击右上角的"+“,然后选择"New repository”。
- 填写仓库的基本信息:
- Repository name:仓库名称。
- Description(可选):仓库描述。
- Visibility:选择仓库的可见性(公开或私有)。
- 根据需要选择其他选项,如初始化README文件、添加.gitignore或选择许可证。
- 点击"Create repository"。
.gitignore示例:
# 忽略所有.log结尾的文件
*.log
# 忽略临时文件,以~结尾
*~
# 忽略特定目录下的所有文件(例如,node_modules)
node_modules/
# 忽略特定的文件(例如,config.env)
config.env
# 忽略所有.DS_Store(Mac系统文件)
.DS_Store
# 忽略所有生成的二进制文件,例如Java编译产生的.class文件
*.class
# 忽略打包文件
*.jar
# 对于Python项目,忽略虚拟环境目录
venv/
.env/
# 忽略编译生成的文件
/bin/
/obj/
/build/
# 忽略IDE设置文件和文件夹,如IntelliJ IDEA和VSCode
.idea/
.vscode/
# 忽略特定前缀的文件,例如所有以tmp开头的文件
tmp*
# 不忽略特定文件(即使前面的规则匹配了它)
# 使用感叹号'!'来表示不忽略
!important.log
# 忽略特定文件夹下除某个文件外的所有文件
/somefolder/*
!/somefolder/keepme.txt
2. 初始化本地项目目录
在本地项目目录中打开终端或命令提示符,执行以下命令:
-
初始化Git仓库:
git init
这将在项目目录中创建一个新的git仓库。
-
添加文件到Git仓库:
首先,可以使用git add
命令来添加文件到仓库中,例如:git add .
这个命令会添加当前目录下的所有文件到仓库中。如果只想添加特定文件,可以将
.
替换为具体的文件名。 -
提交更改:
使用以下命令来提交这些更改到仓库:git commit -m "Initial commit"
其中
"Initial commit"
是提交消息,可以根据实际更改内容自定义这个消息。
3. 将本地仓库关联到GitHub
使用在GitHub创建仓库时得到的URL将本地仓库关联到GitHub上。这个URL可以在仓库页面的"Quick setup"部分找到。执行以下命令,将<your-repository-URL>
替换为实际的URL:
git remote add origin <your-repository-URL>
4. 推送本地代码到GitHub
最后,使用以下命令将本地代码推送到GitHub仓库:
git push -u origin main
这样,就成功地将本地的新项目上传到了GitHub。在未来,每当完成了一系列更改并希望将这些更改推送到GitHub时,只需要重复上面的git add
、git commit
和git push
步骤。
上传本地项目到GitHub时发生冲突
将默认分支名称从master改为main
将默认分支名称从master
改为main
,可以按照以下步骤操作:
-
全局更改默认分支名称(可选):
git config --global init.defaultBranch main
-
更改当前仓库的分支名称:
git branch -m main
git 把远程项目拉到本地,并和本地项目合并
要将远程项目拉取到本地并与现有的本地项目合并,可以遵循以下步骤。这些步骤假设已经有一个本地项目和一个远程仓库,并且希望将远程仓库的内容合并到本地项目中。
1. 在本地项目中添加远程仓库
首先,需要在本地项目中添加远程仓库(如果尚未添加)。打开终端或命令提示符,然后导航到的本地项目目录。使用以下命令添加远程仓库(将<remote-repo-url>
替换为你的远程仓库URL):
git remote add origin <remote-repo-url>
这里,origin
是远程仓库的默认名称,但你可以选择任何名称。
2. 拉取远程仓库的内容
使用以下命令从远程仓库拉取最新的内容:
git fetch origin
3. 检查远程分支
在合并之前,你可能想要检查远程仓库中有哪些分支:
git branch -r
4. 切换到你想合并的分支
如果你还没有本地分支对应于远程分支,你可以使用以下命令创建并切换到一个新的本地分支,这个分支会跟踪远程分支(将<branch-name>
替换为想要合并的分支名):
git checkout -b <branch-name> origin/<branch-name>
如果已经有了一个本地分支并希望将远程分支的变更合并到这个本地分支中,确保现在就在那个本地分支上。如果不是,使用git checkout <branch-name>
切换到那个分支。
5. 合并远程分支
现在,使用以下命令将远程分支的变更合并到你的当前本地分支:
git merge origin/<branch-name>
如果本地的更改是有效的,需要合并处理冲突
如果在合并过程中遇到任何冲突,Git将提示你解决这些冲突。可以手动编辑冲突文件,然后使用git add <file>
来标记它们已解决。
这个错误信息表明在尝试合并origin/main
分支到你的当前分支时,存在一些未提交的更改。这些本地更改在合并操作中可能会被覆盖,因此Git阻止了合并操作以防止可能的数据丢失。
要解决这个问题,你有几个选项:
1. 提交更改
如果你想保留这些更改,你应该先提交它们。这可以通过以下命令完成:
git add .
git commit -m "描述你的更改"
然后,你可以再次尝试合并:
git merge origin/main
2. 贮藏更改
如果你现在不想提交这些更改,但希望稍后再处理,你可以使用贮藏(stash)功能将更改临时保存起来。这可以通过以下命令完成:
git stash
然后,你可以再次尝试合并:
git merge origin/main
合并完成后,如果你想重新应用之前贮藏的更改,可以使用:
git stash pop
3. 放弃本地更改
如果你确定不再需要这些本地更改,你可以使用以下命令放弃它们:
git checkout -- <file>
将<file>
替换为你想放弃更改的文件名,或者如果你想放弃所有未提交的更改,可以使用:
git reset --hard
注意:git reset --hard
会放弃所有未提交的更改,并且这些更改无法恢复,请谨慎使用。
选择适合你情况的方法处理本地更改后,你应该就能成功合并origin/main
分支了。
6. 推送合并更改
如果你对本地分支进行了更改,并希望将合并后的更改推送到远程仓库,使用以下命令:
git push origin <branch-name>