Git是一个开源的分布式版本控制系统,它可以方便地在您的笔记本电脑或
桌面。本备忘单总结了常用的Git命令行指令,以供快速参考。
git常用命令
配置工具
为所有本地存储库配置用户信息
git config --global user.name "[name]"
设置要附加到提交事务的名称
git config --global user.email "[email address]"
设置要附加到提交事务的电子邮件
git config --global color.ui auto
启用命令行输出的有用彩色化
创建存储库
启动一个新的存储库或从现有URL获取一个存储库
git init [project-name]
使用指定的名称创建新的本地存储库
git clone [url]
下载项目及其整个版本历史
基本操作
检查编辑并处理提交事务
git status
列出所有要提交的新文件或修改过的文件
git diff
显示尚未暂存的文件差异
git add [file]
将文件添加到缓存
git diff --staged
显示分期和最后一个文件版本之间的文件差异
git reset [commit]
在[提交]之后撤消所有提交,在本地保存更改
git reset --hard [commit]
丢弃所有历史记录并将更改返回到指定的提交
git commit -m "[descriptive message]"
将缓存区内容添加到仓库中。
GROUP CHANGES
命名一系列提交并组合完成的工作
git branch
列出当前存储库中的所有本地分支
git branch -a
查看所有分支
git branch [branch-name]
创建分支
git checkout [branch-name]
切换分支
git merge [branch]
将指定分支的历史记录合并到当前分支中
git branch -d [branch-name]
合并分支
git checkout -b branchname origin/branchname
新建分支,并跟踪远程对应的分支
重构文件名
重新定位和删除版本化的文件
git rm [file]
从工作目录中删除文件并执行删除
git rm --cached [file]
从版本控制中删除该文件,但在本地保留该文件
git mv [file-original] [file-renamed]
更改文件名并准备提交
SUPPRESS TRACKING
排除临时文件和路径
Lists all ignored files in this project
列出此项目中所有被忽略的文件
REVIEW HISTORY
git log
列出当前分支的版本历史记录
git log --follow [file]
列出文件的版本历史记录,包括重命名
git diff [first-branch]...[second-branch]
显示两个分支之间的内容差异
git show [commit]
输出指定提交的元数据和内容更改
SAVE FRAGMENTS
git stash
临时存储所有修改后的跟踪文件
git stash pop
还原最近隐藏的文件
git stash list
列出所有隐藏的变更集
git stash drop
丢弃最近隐藏的变更集
SYNCHRONIZE CHANGES
注册存储库书签并交换版本历史记录
git fetch [bookmark]
从存储库书签下载所有历史记录
git merge [bookmark]/[branch]
合并分支
git push
上推
git pull
下拉
推送远端基本工作流程
1. cd进目录
2. git fetch
3.git status 查看状态
4.git add . 添加
5. git commit -m "weekly status"
6. git push
分支推送远端工作流程
合并分支:
git fetch
git branch -a
git checkout main_func 切换分支
git merge han_main 合并分支
git status
git push
常遇到问题
问题1 error: Your local changes to the following files would be overwritten by merge:
方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
git stash
git pull origin master
git stash pop
方法2、如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull:
git reset --hard
git pull origin master
问题2:切换分支时:error: you need to resolve your current index first
方法1: git reset --merge
问题3:
To git@192.168.1.32:sln_bj001
! [rejected] main_func -> main_func (non-fast-forward)
error: failed to push some refs to 'git@192.168.1.32:sln_bj001'
方法1:git pull --rebase origin master
git push -u origin master