git常用命令总结(持续更新)

git拉取一个项目:  
git clone git:// github.com/schacon/grit.git 
完成一个功能后提交代码
git pull(用来查看远程仓库是否有更新)
git add
git commit //之后显示Linux默认编辑器,i插入备注,esc退出编辑状态,:wq退出编辑器。
git push origin develop
本地文件跟远程仓库文件冲突:
使用git pull时出现错误 Error pulling origin: error: Your local changes to the following files would be overwritten by merge ”那就是本地文件修改了
如果想撤销修改,可以使用下面的命令
reset与checkout异同点
可以实现相同的功能,比如还原本地文件,但是reset更强调 “撤销” ,比如撤销暂存区、撤销暂存区和本地,而checkout更强调 “替换” ,比如用暂存区内容替换本地,用head指向目录替换暂存区和本地。
reset强调,撤销
git reset head - - filename 
撤销上次暂存(取消暂存区的内容,用head指向的目录(版本库)替换暂存区)
如果只删除暂存,保留工作区,可以使用 git rm --cached -r filename ,-r表示递归删除
git reset - -hard head: 
撤销本地和暂存区的所有变动(用head指向的目录(版本库)替换本地和暂存区)
git reset – hard origin/master 
撤销本地、暂存区、版本库(用远程服务器的origin/master替换本地、暂存区、版本库)
checkout强调,替换(无法撤销已经提交到暂存区的内容)
git checkout [- -] filename 
- 用暂存区的内容替换工作区的文件。比如working directory修改了,但是想放弃这些修改,那么使用 git checkout -- a.txt  放弃对a.txt的修改 
git checkout head filename 
- 用head指向的目录(版本库)替换暂存区和工作区的文件
head
git的命令中经常会用到head,可以将head看做一个 指针 ,head指本地的版本库,可以将head替换为远程库,比如origin/master,origin代表一个地址,master是分支。
git checkout . 可用于撤销所有没加到暂存区的修改
创建远程分支:
1、本地创建分支Dev
      git branch dev
2、把本地分支提交到远程仓库
      git push origin dev
3、查看下远程分支
      git branch -a
删除本地分支和远程分支:
1、切换到master下,先查看下分支,然后删除本地分支
      git branch -d <BranchName>
2、删除远程分支
      git push origin --delete <BranchName>
3、再查看下分支
文件删除后还没有提交到暂存区,如何恢复
1、git reset HEAD <file>
2、git checkout --<file>
远程分支覆盖本地分支
有时候同一个分支,远程的和本地的都被修改的面目全非了,如果想要把本地的替换成远程的,用下面的命令
git fetch --all
git reset --hard origin/master (这里master要修改为对应的分支名)
git pull
撤销git add
git reset HEAD <file>,如果不加file参数,就是对之前的所有add都撤销
git pull出现There is no tracking information for the current branch
就是需要指定本地project分支,跟远程仓库项目分支之间的关系,比如,我们需要本地master对应远程的master
git branch --set-upstream-to=master origin/master
初始化一个项目
1、现在gitlab上建立一个仓库
2、进入本地项目的根目录,git bash,输入命令git init,这样就与仓库建立连接了
3、 git remote add origin (远程库的SSH)
4、git add .
5、git commit
6、git push -u origin master
撤销git pull
如何撤销git pull 
第一步,执行git reflog获取你自己的commit id(就是下图红框框起来的)

第二部,执行git reset --hard A1(这里的A1就是你自己最初提交patch的commit后的id)
对比本地和远端的差别
假设远端库名是 origin,你要比较的本地分支为 test,远端分支就是 xxx
#获取远端库最新信息
git fetch origin
#做diff
git diff test origin/xxx
强行push
git push origin master -f



猜你喜欢

转载自blog.csdn.net/zoulonglong/article/details/80353771