命令 | 解释 |
---|---|
git status | |
git add <filename> | |
git commit -m “message” | |
git push <远程库名> <本地分支>:<远程分支> | 将本地指定分支推送到远端指定分支上 |
git pull | 自动拉取远程库的内容并自动合并 |
git stash | 暂存本地工作区 |
git stash list | |
git stash pop | 从栈顶取出stash内容 |
git stash drop $STASH_NAME | |
git reset [–soft / --hard] HEAD | 回滚到当前HEAD指向版本(soft将缓存区返还至工作区,hard直接删除) |
git reset HEAD^ / HEAD~n | 回退到HEAD指向的前一个版本/前n个版本 |
git rebase master | 附录【1】 |
git reflog | 查看历史log |
git restore <filename> | 未commit时,撤销文件的修改 |
git restore --staged <filename> | 已commit后,将file撤回到工作区,并保留文件最后一次修改的内容 |
git branch | 查看所有分支 |
git branch -d <branch-name> | delete fully merged branch |
git checkout -b <branch-name> | create and checkout a new branch |
git checkout . | 丢弃当前工作区的所有更新(不影响缓存区内容) |
本地版本的当前分支落后于远程库的当前分支,无法进行推送【2】 |
常见git报错处理:(不适用于所有git版本,仅在博主的git for windows上验证)
报错 | 命令 | 解释 |
---|---|---|
OpenSSL SSL_read: Connection was reset, errno 10054 | git config --global http.sslVerify “false” | |
Failed to connect to github.com port 443 after 21234 ms: Timed out | git config --global --unset http.proxy | 取消代理 |
(同上) | git config --global --unset https.proxy | 取消代理 |
git update-git-for-windows | git版本升级 |
附录
【1】git rebase master 将当前分支基线并入master
处理前开发情况: ---A---B---C---D <---master
|
|---E---F---G <---feature
处理后开发情况: ---A---B---C---D <---master
|
|---E---F---G <---feature
即:1 commits behind master, 1 commits ahead —> 0 commits behind master, 1 commits ahead
处理方法:
git checkout master
git pull
git checkout feature
git rebase master
hint:若rebase过程中出现冲突,则需先手动解决冲突,再将该文件add添加至工作区表示冲突解决完成,再重新进行git rebase master
【2】本地版本的当前分支落后于远程库的当前分支时,无法进行推送,此时需要进行以下操作:
git fetch
// 和远程库进行合并
git merge origin:<branch-name>
// 手动解决冲突
git add <file-name>
git commit -m ""
git push
以上操作中,git pull = git fetch + git merge,即git pull会自动拉取远程库的内容并自动合并