git常用命令(干货)

git上传代码

初始化:git init

切换分支:git checkout branch

拉取分支:git pull branch

注:首次拉取分支:git pull origin branch

添加修改文件:git add .

提交修改信息:git commit -m text

关联远程仓库:git remote add origin http

提交至远程仓库:git push

 

分支的创建和删除

新建分支:git branch new_branch

新建并切换到分支:git checkout -b new_branch

删除本地分支:git branch -d branch

直接删除本地分支:git branch -D branch

注:git branch -d会在删除前检查merge状态,git branch -D 是git branch --delete --force的简写,它会直接删除。

删除远程分支:git push origin --delete branch

 

分支状态及信息

查询分支信息:git branch -v

注:git branch -vv ,更详细

查询分支:git branch

查询分支提交信息:git log

注:git log –oneline,更简洁

查询所有远程提交:git reflog

 

分支拉取及合并

拉取所有分支:git fetch --all

拉取分支:git fetch branch

合并分支:git merge branch

 

暂存区相关

存储暂存区:git stash

取出暂存:git stash pop

取出指定暂存:git stash pop stash@{num}

存储暂存区,并备注:git stash save text

查看暂存列表:git stash list

删除指定暂存:git stash drop stash@{num}

* 有时这种 { 符号会导致报错,需 ` 转义一下, git stash drop stash@`{num`}

查看暂存状态:git status

 

分支回退

第一种方法

1. 本地回退至某个版本:git reset --hard commit_Id(注:git pull,撤销本地回退)

2. 同步远程仓库:git push --force

第二种方法

先提交,再回退某个版本:git revert HEAD~num

注:git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit;

在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入;

git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

 

修改本地和远程分支名称

git branch -m old_branch new_branch

git push origin old_branch

git push --set-upstream origin new_branch

 

合并单次提交办法

查询历史提交:git log

切换分支:git checkout branch

合并单次提交:git cherry-pick commit_Id

注:也可以多个commit_Id

检查状态:git status

 

同步分支

清除远程已删除分支:git remote prune origin

清除本地分支:git branch -d branch

 

当commit了代码,未push时,发现分支错了,则用以下操作:

git reset --soft HEAD^
git reset HEAD~

 

设置上游

git push --set-upstream origin branch

 

posted @ 2020-08-28 17:56  一杯龙井解千愁  阅读(102)  评论(0编辑  收藏  举报