Git常用命令总结
| 本文总阅读量次Git
系统系统性的学习Git,请移步Git中文学习文档,这篇文章只是分类记录一下git的常用命令。
常用命令总结
Git初始化
git init
将当前目录变为本地仓库(.git)git clone
克隆一个远程仓库到本地git clone -b branch url
克隆远程仓库指定branch分支到本地git config user.name
查看用户名git config user.email
查看邮箱
设置与配置
git config -global user.name/email "参数"
git是分布式版本控制,所以添加用户名和邮箱作为一个标识ssh -keygen -t rsa -C "email"
生成本地ssh key
本地版本库
git add "filename.*"
添加到暂存区git commit -m "filename.*"
提交到本地仓库git commit --amend
尝试重新提交,例如:
1 | git add file1 // 将file1 添加至缓存区 |
git status
查看本地仓库状态git diff filename.*
查看尚未暂存的文件修改的部分git diff --cached
或git diff --staged
查看已暂存的文件修改的部分git log
commit的日志git log --pretty=oneline
日志显示为缩略版
注:git reset
不加--hard
参数对当前工作区文件不会有任何修改,只是对缓存区进行操作。一旦加了参数,操作一定要慎重,否则你当前工作区中的修改将会全部被清除。git reset HEAD file
将file退回到当前版本(仅仅是对缓存区进行操作)git reset --hard HEAD^
退回到上一版本git reset --hard HEAD^^
退回到前二的版本git reset --hard HEAD~100
退回到前100版本git reset --hard 版本号
退回到一个特定的版本git reflog
查看所有操作日志,包括分支和删除的commitgit reset --mixed
将当前文件撤出缓存区,保留文件修改git rm --cached file
删除缓存区filegit checkout -- file
恢复工作区file(取消工作区文件的修改)
远程版本库
git remote add origin 远程git地址
连接git push -u origin master
把本地库分支master内容推送到远程库(-u 命令在第一次关联本地库和远程库时使用)git clone url
克隆远程(url)库
git分支操作
首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
git branch
查看分支git checkout
切换分支git checkout -b
创建并切换分支git merge
合并到当前分支git branch -d
删除某分支git merge --no-ff -m "注释"
分支合并分支禁用fast forwardgit stash
将当前分支的工作现场保留下来git stash list
查看工作现场git stash apply
恢复内容但是你需要git stash drop删除stashgit stash pop
恢复的同时把stash内容也删除git remote
查看远程库的信息git remote -v
查看远程库的详细信息git push origin master
master为本地的分支名推送分支git checkout -b dev origin/dev
dev为分支名,做完开发后git push origin dev
推送到远程库git pull
抓取最新的提交,并尝试自动合并到本地当前所在的分支git fetch
抓取最新的提交,不会自动合并,必须手动。git rebase
变基,将提交到某一分支上的所有修改都移至另一分支上git rebase --continue
继续变基操作,一般用于第一次变基失败后,解决冲突文件,将冲突文件添加到缓存区,不要提交,然后再执行此命令。如果提交了,执行git rebase --skip
命令取消rebase状态。git branch --set-upstream dev origin/dev
指定本地dev分支(已经创建的)与远程origin/dev分支的连接git branch -u origin/dev
指定当前所在连接远程origin/dev分支的连接git checkout --track origin/dev
创建新的dev分支,制定远程连接origin/dev
如果顺着一个分支走下去能够到达另一个分支,那么Git在合并两者的时候,只会简单的将指针向前推进(指针右移),因为这种情况下的合并操作没有需要解决的分歧——这就叫做 “快进(fast-forward)”。
多人协作
- 每开发一个新特性可以新建一个本地特性分支,开发完成后合并到本地主线。
- 如果不使用特性分支开发可以使用
git stash
保存当前的工作空间。 - 远程代码和本地代码合并有两种方式,
git pull
和git fetch
,git pull
命令会自动合并远程代码,冲突后需要解决冲突后提交。git fetch
不自动和本地代码合并,需要手动merge。 - 在合并时,根据项目情况使用变基,
git pull --rebase
可以保持自动合并的情况下进行变基。一般情况下,远程库不保留本地操作历史,所以本地与远程代码合并时最好使用变基。 - 使用变基原则:只对尚未推送或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作,这样,你才能享受到两种方式带来的便利。
- 本文链接: http://blog.programer.group/utils/2018-10-23-git/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!