自己总结的 git常用操作

第一部分:常用的命令

第一步 :git init
第二步: 如果遇到warning: LF will be replaced by CRLF in b.txt.”
原因是不同系统的回车换行符造成的
需要修改git config core.autocrlf false
第三步: git add.
第四步: git commit -m “”,一定要写注释。
git commit -a -m “”
第五步: 查看状态 git status
第六步: 查看历史
git log
git log --online
将每个提交压缩到一行。当你需要查看项目历史的上层情况时这会很有用。
git log --stat
除了git log信息之外,包含哪些文件被更改了,以及每个文件相对的增删行数。
git log -p
显示代表每个提交的一堆信息。显示每个提交全部的差异(diff),这也是项目历史中最详细的视图。
git log --graph --all
命令行查看不太适合相差太大的分支,分支的共同父节点和分支的当前节点隔开太多
第七步: git checkout 哈希码 可以检出之前的状态,退到之前,git checkout master 又回到当前状态。
第八步: 检出文件
git checkout a1e8fb5 hello.py 旧的文件版本会显示为「需要提交的更改」,允许你回滚到文件之前的版本。如果你不想保留旧的版本,你可以用下面的命令检出到最近的版本:
git checkout HEAD hello.py

第九步: 版本回退的两种办法。
git reset :直接回退到之前的版本,目标版本之后全部消失。
git revert : 只取消目标版本,目标之后的版本依然保留。
参考链接:https://blog.csdn.net/yxlshk/article/details/79944535
第九步: 使用git commit --amend 命令修改上次提交信息。
合并缓存的修改和上一次的提交,用新的快照替换上一个提交。缓存区没有 文件时,运行这个命令可以用来编辑上次提交的提交信息,而不会更改快照。
第十步: 查看log常用命令
git log --graph --pretty=oneline --abbrev-commit
git log --all --decorate --oneline --graph
第十一步:图像化界面 gitk 命令

第二部分

git rebase 合并分支:把你当前分支的 commit 放到公共分支的最后面,所以叫变基。
   	:将自己的commit取消掉,将中间别人的commit 下载下来,把自己的commit添加到别人的commit之后。
参考链接:https://blog.csdn.net/zzhongcy/article/details/86476160
		  https://www.jianshu.com/p/4079284dd970

第三部分: 远程仓库

添加远程仓库:git remote add .....
推送远程:git push -u origin master
	git remote
	git remote -v 和上个命令相同,但同时显示每个连接的 URL。

	git remote add <name> <url>:创建一个新的远程仓库连接。在添加之后,你可以将 `<name>` 作为 `<url>` 便捷的别名在其他 Git 命令中使用。

	git remote rm <name> /git remote rename <old-name> <new-name> :移除和变名
拉取分支: 
	git fetch <remote> / git fetch <remote> <branch>
查看分支:
    git branch -a
    git branch -r
    git log origin/master
拉取并合并
	git pull :使用 `git fetch`,然后是 `git merge`
推送:
	git push <remote> <branch>/git push <remote> --force/git push <remote> --all/git push <remote> --tags
一般过程:先fetch,在变基,再推。
    git checkout master
    git fetch origin master
    git rebase -i origin/master
    # Squash commits, fix up commit messages etc.
    git push origin master
推送本地其他分支到远程分支:
	git push <远程主机名> <本地分支名>:<远程分支名>
	git push origin master:master
合并远程的两个分支,不能直接操作远程合并,只能先clone,在本地合并,在推倒远程:
	git clone [gitsite  git远程网址]
	git checkout -b dev origin/dev
	git checkout master
	git merge dev
	git push origin master

第四部分:分支

git branch -r
git branch -a :列出本地与远程所有分支。 
git branch:列出本地仓库中所有分支。
git checkout -b <branch>:创建并切换。相当于git branch <branch> git checkout <branch>
git branch -d <branch>:删除指定分支。(删除前要合并)
git branch -D <branch>:强制删除指定分支,即使包含未合并更改。如果你希望永远删除某条开发线的所有提交,你应该用这个命令。
git branch -m <branch>:将当前分支命名为 `<branch>`。
git push origin --delete <branch> :删除远程分支

第五部分:代码合并问题git merge 和 git rebase

https://www.jianshu.com/p/4079284dd970
不要在公共分支使用rebase
本地和远端对应同一条分支,优先使用rebase,而不是merge

通俗的解释一波:比如rebase,你自己开发分支一直在做,然后某一天,你想把主线的修改合到你的分支上,做一次集成,这种情况就用rebase比较好.把你的提交都放在主线修改的头上,
缺点是:你不知道是从哪里拉出来的。
git rebase -I dev 可以将dev分支合并到当前分支
这里的”-i“是指交互模式。就是说你可以干预rebase这个事务的过程,包括设置commit message,暂停commit等等
git rebase –abort 放弃一次合并

调用 `git rebase` 的时候,你有两个基(base)可以选择:上游分支(比如 master)或者你 feature 分支中早先的一个提交。
git rebase -i HEAD~3:你只是将之后的 3 次提交重写了。注意它不会把上游分支的更改并入到 feature 分支中。

第六部分: 代码回滚Reset、Checkout、Revert

换句话说,如果你想扔掉这两个提交,你可以这么做。git reset HEAD~2

命令作用域常用情景
git reset提交层面在私有分支上舍弃一些没有提交的更改
git reset文件层面将文件从缓存区中移除
git checkout提交层面切换分支或查看旧版本
git checkout文件层面舍弃工作目录中的更改
git revert提交层面在公共分支上回滚更改
git revert文件层面(然而并没有)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值