git常用命令

git cmd #安装

yum install git
yum install git-doc git-svn git-email git-gui gitk

安装过程可能会提示错误 Requires: libcurl.so.3 ,解决方法:

vim /etc/yum.repos.d/rpmforge.repo
...
enabled = 0 # 把原值 1 改成 0
...

#配置

# 配置账号信息 
git config --global user.name your_name
git config --global user.email your_email
# 配置自动换行
git config --global core.autocrlf input # 提交到git是自动将换行符转换为 lf

# 配置密钥
ssh-keygen -t rsa -C your_email			# 生成密钥
ssh -T git@github.com 					# 测试是否成功

# 配置命令别名
git config --global alias.st status		# git st
git config --global alias.co checkout	# git co
git config --global alias.br branch		# git br
git config --global alias.ci commit		# git ci

# 查看配置
git config --list

# 获取帮助信息
git help config

#新建仓库

git init 	# 初始化

从现有仓库克隆

git clone url
git clone url dir # 克隆到自定义文件夹

查看仓库状态

git status

#本地命令

git add * 									# 跟踪新文件
git add -u [path] 							# 添加[指定路径下]已跟踪文件
git ls-files								# 查看已跟踪文件列表
					
rm *&git rm * 								# 取消跟踪并移除本地文件
git rm -f * 								# 取消跟踪并移除本地文件
git rm --cached * 							# 取消跟踪
git mv file_from file_to 					# 重命名跟踪文件
					
git commit 									# 提交更新
git commit -m 'message' 					# 附加说明的提交更新
git commit -a 								# 跳过使用暂存区,把所有已经跟踪过的文件暂存起来一并提交
git commit --amend 							# 修改最后一次提交
					
git reset -- * 								# 取消已经暂存的文件
git reset HEAD * 							# 取消已经暂存的文件
git reset --mixed HEAD * 					# 取消已经暂存的文件
git reset --soft HEAD~n 					# 重置到指定版本,不会修改暂存区和工作区
git reset --hard HEAD~n 					# 重置到指定版本,会修改暂存区和工作区
						
git revert HEAD 							# 撤销前一次操作
git revert HEAD~ 							# 撤销前前一次操作
git revert commit 							# 撤销指定操作
					
git checkout -- * 							# 取消工作区文件的修改(暂存区文件覆盖工作区文件)
git checkout -- . 							# 暂存区覆盖工作区
git checkout branch|tag|commit -- *     	# 切换到 branch 分支
					
git diff *	 								# 查看指定文件的差异
git diff --stat 							# 查看简单的 diff 结果
git diff 									# 比较工作区和暂存区之间的差异
git diff --cached 							# 比较暂存区和当前分支 HEAD 之间的差异
git diff HEAD 								# 比较工作区和当前分支 HEAD 之间的差异
git diff branch_name						# 比较工作区和分支 branch_name 之间的差异
git diff branch1 branch2 					# 比较两个分支之间的差异
git diff commit1 commit2 					# 比较两次提交之间的差异
					
git log 									# 查看最近的提交日志
git log --pretty=oneline 					# 单行显示提交日志
git log --graph								# 使用 ASCII 码拼接成图形显示分支合并                            
git log -p [file]   						# 查看每次详细修改内容的 diff
git log -num 								# 显示第几条log(倒数)
					
git stash 									# 将工作区现场(已跟踪文件)储藏起来,等以后恢复后继续工作
git stash list 								# 查看保存的工作现场
git stash apply 							# 恢复工作现场
git stash drop 								# 删除 stash 内容
git stash pop 								# 恢复的同时直接删除 stash 内容
git stash apply stash@{n} 					# 恢复指定的工作现场,当你保存了不只一份工作现场时

#分支

git branch									# 列出本地分支
git branch -r 								# 列出远端分支
git branch -a 								# 列出所有分支
git branch -v 								# 查看各分支最后一个提交对象的信息
git branch --merge 							# 查看已合并到当前分支的分支
git branch --no-merge						# 查看未合并到当前分支的分支
git branch branch_name						# 新建 branch_name 分支
git branch -m old new 						# 重命名分支
git branch -d branch_name					# 删除 branch_name 分支
git branch -D branch_name					# 强制删除 branch_name 分支
git branch --set-upstream branch_name origin/branch_name 	# 将本地 branch_name 分支与远程 branch_name 分支之间建立链接

git checkout branch_name					# 切换到 branch_name 分支
git checkout -b branch_name					# 新建并切换到 branch_name 分支
git checkout -b branch2 branch1				# 基于 branch1 新建 branch2 分支,并切换

git merge branch_name						# 将 branch_name 分支合并到当前分支
git merge --squash branch_name				# 合并并且压缩,将 branch_name 上的 commit 压缩为一条

git cherry-pick commit_sha1 				# 拣选合并,将 commit 合并到当前分支
git cherry-pick -n commit_sha1				# 拣选多个 commit 合并,合并完后可以继续拣选下一个 commit

git rebase branch_name						# 将 branch_name 分支之上超前的提交,衍合到当前分支
git rebase --onto branch_name commit_sha1	# 限制回滚范围,rebase 当前分支从 commit 以后的提交
git rebase --interactive 					# 交互模式	
git rebase --continue						# 处理完冲突继续衍合
git rebase --skip							# 跳过	
git rebase --abort							# 取消衍合

#远端 Git 是一个分布式版本管理工具,所以可以支持多个仓库。服务器上的仓库在本地称为远端(remote)或源(origin)。

git remote add origin_name url				# 添加源

git remote									# 显示全部源
git remote -v								# 显示全部源及其详细信息
git remote show origin_name 				# 查看指定源的全部信息

git remote rename origin1 origin2			# 重命名源
git remote rm origin_name					# 删除源

#远端分支

git fetch origin remotebranch[:localbranch]	# 拉取远端分支[到本地指定分支]
git merge origin/branch						# 合并远端上指定分支到本地当前分支
git pull origin remotebranch:localbranch	# 拉取远端分支到本地指定分支并合并(pull = fetch + merge)

git push origin branch						# 推送当前分支到其链接的远端分支
git push origin localbranch:remotebranch	# 推送本地指定分支到远端上指定分支
git push origin :remotebranch				# 删除远端指定分支

git checkout -b [--track] localbranch origin/remotebranch	# 基于远端分支新建本地分支[同时设置跟踪]

#标签 当项目到一定阶段时,给不同的提交或分支打标签做标记是很有用的。

git tag 									# 列出现有标签	

git tag tag_name							# 新建标签
git tag -a tag_name -m 'message'			# 新建带注释标签

git checkout tag_name						# 切换到标签

git push origin tag_name					# 推送分支到源上
git push origin --tags						# 一次性推送所有分支

git tag -d tag_name							# 删除标签
git push origin :refs/tags/tag_name			# 删除远程标签

转载于:https://my.oschina.net/u/1991338/blog/411611

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值