常见命令
git init
git add .
git commit -m "初始化"
git branch -M main
git remote add origin https://github.com/githubusername/demo.git
git pull origin main
git push -u origin main #首次推送加-u参数
创建和切换分支
1、创建新分支
git branch 新分支名称
2、切换分支
git checkout 分支名称
3、创建分支的同时,切换到该分支上
git checkout -b 新分支名称
合并分支
假如把dev分支合并到main
首先切换到main分支上
git checkout main
如果是多人开发的话,需要把远程main分支上的代码pull下来
git pull origin main
然后把dev分支的代码合并到main上
git merge dev
警告提示: Please enter a commit message to explain why this merge is necessary
遇到警告 直接按键盘左上角"
Esc
" 然后输入:wq
按回车键,或者按ctrl+x
再输入y
回车即可
最后一步,Push推送到远程仓库
git push origin main
删除本地分支
列出所有的本地分支
git branch
在删除一个本地分支之前,请确保切换到另一个你
不想删除
的分支
切换分支
git checkout 分支名
删除本地分支:
git branch -D 分支名
大写字母D(这是-- delete --force
的别名),强制删除本地分支,而不考虑其合并状态
删除远程分支
获取所有远程分支的列表:
git branch -r
找到您想要删除的远程分支,然后运行以下命令以删除它:
git push origin -d 分支名
pull代码到本地分支
git pull --rebase origin 分支名
push分支到远程仓库
git push origin 分支名
假设本地创建了一个名为dev的分支,远程仓库还没有这个分支,推送的命令是:
git push --set-upstream origin dev
删除暂存区
删除暂存区和版本库的文件,但保留了工作区的文件
例如:
git rm -r --cached D:/code/vosk-model-small-cn-0.22
查看状态
git status
同步更新源仓库
a开发者fork了b开发者的项目后,如果b开发人员更新代码后,a开发者如何获得更新?
1.给fork配置远程库,先查看远程状态
git remote -v
2.同步上游仓库, upstream
后的地址是你即将同步的上游仓库git地址
git remote add upstream https://github.com/xxx/xxxx.git
再次查看状态确认是否配置成功。
git remote -v
3.开始同步fork
git fetch upstream
4.切换到本地主分支
git checkout master
把 upstream/master
分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容。
git merge upstream/master
如果想更新到 GitHub 的 fork 上,直接push就好了
git push origin master
储藏与清理
储藏会处理工作目录的脏的状态 - 即,修改的跟踪文件与暂存改动 - 然后将未完成的修改保存到一个栈上,而你可以在任何时候重新应用这些改动。
首先查看状态
git status
git status -s
新的储藏推送到栈上
git stash
查看储藏的东西,可以使用 git stash list
git stash list
$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log
应用存储的更改: 最近的储藏
git stash apply
应用存储的更改: 索引号为 0的存储
git stash apply stash@{0}
移除储藏
列出存储:
git stash list
移除某个存储:例如
git stash drop stash@{0}
运行 git stash pop
来应用储藏然后立即从栈上扔掉它
git stash pop
git报错的解决方法
ssh key有问题 :
Please make sure you have the correct access rights and the repository exists
解决办法: 1、设置用户名和邮箱
git config --global user.name "yourname"
git config --global user.email "your@email.com"
2、删除.ssh文件夹下的known_hosts(手动删除即可,不需要git)
3、生成 SSH Key 一路回车即可
ssh-keygen -t rsa -C "your@email.com"
用户主目录 /.ssh 下有两个文件,id_rsa 是私钥,id_rsa.pub 是公钥, 记事本打开公钥 id_rsa.pub, 然后复制公钥内容
4、添加 SSH keys
添加地址: https://github.com/settings/ssh/new
新建一个 SSH keys,标题自己起,Key 的内容就是id_rsa.pub 公钥内容,然后添加。
5、在git中输入命令:
ssh -T git@github.com
输入命令:yes
没有添加远程仓库
fatal: ‘origin’ does not appear to be a git repository
解决办法:
git remote add origin git@github.com:xxse/xx.git
如果remote时出现fatal: remote origin already exists.
解决方法是删除原有的origin
git remote -v
git remote rm origin
[! [rejected] master -> master (fetch first)
github允许你本地仓库有的东西,远程仓库里没有,但不允许远程仓库有的东西,你本地仓库没有。
所以在提交之前需要先拷贝远程仓库,命令如下
git pull --rebase origin master