- 如何 push 你的项目至 GitHub Repo,包括使用 .gitignore 忽略项目文件夹中的某些文件
- 如何得知当前 IDE 连接的是什么 remote repo 地址,并更改你的远程仓库 remote repo 的连接,比如你的仓库改名了
- 如何合并 merge 两个分支 branch,以 master 分支合并到 main 为例
- 如何创建新的分支 branch 并且切换到新的分支,push到新分支
- 如何查看/添加/清除 staging area 的内容
- 如何 push 本地分支到 remote repo,在远程分支和本地分支历史不同的情况下,以master分支为例
- 如何修改git里面的 username
- 如何恢复到之前的提交 git reset 和 git revert
- 如何丢弃本地提交,直接指向GitHub的最新提交
- 如何
- 如何
如何 push 你的项目至 GitHub Repo,包括使用 .gitignore 忽略项目文件夹中的某些文件
- 创建一个GitHub仓库
- 打开你的本地终端 local terminal 在你的本地项目仓库中
git init
初始化一个 Git 本地仓库git remote add origin [repository URL]
连接到你的远程GitHub仓库- 请注意在执行step 6之前,如果你有不需要上传的文件或者文件夹,请创建一个
.gitignore
文件,并将忽略的文件名写在里面,类似这个链接中的写法。- 常用的 .gitignore 内容:
node_modules build .idea __pycache__/ *.pyc
git add .
添加你的所有准备上传到GitHub中的文件git commit -m “message here”
commit你的所有更改git push origin [branch name]
push到你的远程仓库中,请注意GitHub默认的分支叫main
,但你可以上传到别的分支中,如master
。
如何得知当前 IDE 连接的是什么 remote repo 地址,并更改你的远程仓库 remote repo 的连接,比如你的仓库改名了
- 打开你的本地终端 local terminal 在你的本地项目仓库中
git remote -v
查看当前的remote repo连接git remote remove origin
移除当前的remote连接git remote add origin [new repository URL]
添加新的remote连接git remote -v
验证是否连接的仓库已经被更改
如何合并 merge 两个分支 branch,以 master 分支合并到 main 为例
- 首先确认 master 分支的内容已经被push到了远程仓库中
git checkout main
检出main分支git merge master
使用merge来合并master到main分支上- 如果step 3存在冲突,请使用
git status
git mergetool
来查看冲突并手动解决冲突。 git add .
添加所有文件git commit -m "Merge master into main”
commit你的合并操作git push origin main
将main推送到远程仓库中
如何创建新的分支 branch 并且切换到新的分支,push到新分支
- 创建新的分支:
git branch <branch_name>
- 创建新分支后,你可以使用以下命令来切换到新分支:
git checkout <branch_name>
- 如果内容已经add,commit之后,需要push:
git push origin [branch name]
如何查看/添加/清除 staging area 的内容
- 查看
- 显示当前暂存区和工作区的状态:
git status --short
可以查看M或者A的状态。 - 查看某个特定文件在暂存区中的更改:
git diff --staged <filename>
这个命令将显示这个文件在暂存区中与上一次提交的版本之间的差异。
- 显示当前暂存区和工作区的状态:
- 添加
- 添加单个文件:
git add <filename>
- 添加多个文件:
git add <filename1> <filename2> …
- 添加整个目录:
git add <directory>
- 添加所有更改:
git add .
- 添加单个文件:
- 清理
- 清理所有文件:
git reset
可以将所有文件从暂存区域中移除,不会影响文件内容。 - 清理部分文件:
git rm --cached <filename>
- 清理所有文件:
如何 push 本地分支到 remote repo,在远程分支和本地分支历史不同的情况下,以master分支为例
git pull origin master --allow-unrelated-histories
执行这个命令后,Git 将尝试将两个不同的历史记录合并在一起,并提示您解决任何冲突。完成合并后,您可以使用git push
命令将更改推送到远程仓库中。- 然后就可以push到远程仓库中:
git push origin master
如何修改git里面的 username
如何恢复到之前的提交 git reset 和 git revert
- 某个方法:
- 使用
git log
查看提交历史,找到你要撤销的提交的commit id。例如最后一次提交的id是abc123。 git reset --soft HEAD~1
或git reset --soft abc123
--soft参数会保留工作区的修改,不会撤销工作区的代码更改。git commit -m "New commit message"
git push -f origin <branch-name>
-f参数会强制推送,覆盖远程分支。
- 使用
- 应该是不止一个方法,欢迎补充。
- git reset 和 git revert 的区别
git reset
会撤消直到指定的 commit ID 的状态的改动。例如,恢复到第二个 commit ID 的状态将撤消改动,并将文件的状态保持为第二个 commit 的状态。git revert
将撤消到指定的 commit ID 之前的状态。例如,还原到第二个 commit ID 将撤销更改,并将文件的状态保留为第二个 commit 之前的 commit 的状态——第一个 commit。 - 何时使用 git reset 和 git revert
当你在本地仓库上工作时,如果变化尚未被远程推送,你应该使用
git reset
。这是因为在从远程仓库拉取修改后运行该命令会改变项目的 commit 历史,导致在该项目上工作的每个人发生合并冲突。当你意识到对某一本地分支所做的修改应该在其他地方时,
git reset
是一个不错的选择。你可以重置并移动到想要的分支,而不会丢失你的文件修改。对于恢复推送到远程仓库的改动,
git revert
是一个很好的选项。因为这个命令会创建一个新的提交,而不会改变其他人的提交历史。
如何丢弃本地提交,直接指向GitHub的最新提交
git fetch origin
git reset --hard origin/<branch-name>
--hard参数会重置本地内容,丢弃本地没有的提交