Git常用命令整理
Git常用命令整理
1、初始化
git init
2、设置签名
一般这个只设置系统用户级别
git config --global user.name xxx
git config --global user.email xxx
3、查看状态
git status
4、添加
git add [file name]
5、提交到本地仓库
git commit -m "描述信息" [file name]
6、推送
git push
git push [别名] [分支名] 例如:git push origin master
7、拉取
git pull
git pull 或 git fetch 例如:git pull origin master
两者的区别,git pull下载并合并 git fetch仅下载
8、看日志
git log
git log --pretty=oneline
git log --oneline
git reflog
9、本地记录之间前后切换
基于索引值操作[推荐]:git reset --hard [局部索引值] 例如: git reset --hard a6ace91
使用^符号: 只能后退:git reset --hard HEAD^ 注: 一个^表示后退一步, n 个表示后退 n 步
使用~符号(只能后退):git reset --hard HEAD~n 注:表示后退 n 步
reset 命令的三个参数对比
--soft 参数 仅仅在本地库移动 HEAD 指针
--mixed 参数 在本地库移动 HEAD 指针、 重置暂存区
--hard 参数 在本地库移动 HEAD 指针、 重置暂存区、 重置工作区
10、比较文件差异(基本不用)
将工作区中的文件和暂存区进行比较:git diff [文件名]
将工作区中的文件和本地库历史记录比较:git diff [本地库中历史版本] [文件名]
比较多个文件:git diff
11、查看分支
查看全部分支:git branch -a
git branch查出来的结果列表中,前面标*号的表示当前正在使用的分支
12、从远程仓库下载
下载:git clone [远程地址]
下载指定分支:git clone -b 分支名 仓库地址
13、远程地址相关命令
查询设置的远程仓库的地址与别名:git remote -v
添加远程仓库:git remote add [别名] [远程地址] 例如git remote add origin http://xxxxx
删除指定的远程仓库:git remote rm origin 此处最后填写对应的别名即可
14、本地分支相关命令
查看本地存在的分支:git branch -v 或 git branch
创建本地分支:git branch [分支名]
创建本地分支,并自动切换至新分支上:git checkout -b 新分支名 例如 git checkout -b dev2
切换本地分支:git checkout [分支名]
合并分支:先 git checkout [被合并分支名],再 git merge [有新内容分支名]
删除本地分支:git branch -d 分支名
重命名本地分支:git branch -m dev-old dev-new 注意:-m后面先填原先分支的名字,后写重命名后的名字
15、远程分支相关命令
推送本地分支到远程仓库:git push --set-upstream origin 分支名
删除远程分支:git push origin --delete 分支名
此处容易出现一个问题
下面这个是执行的命令
git push --delete origin master
下面是出现的问题
remote: error: refusing to delete the current branch: refs/heads/master
To git@github.com:zrong/quick-cocos2d-x.git
! [remote rejected] devel (deletion of the current branch prohibited)
error: failed to push some refs to 'git@github.com:zrong/quick-cocos2d-x.git'这是由于在 github 中,master 是项目的默认分支。
要解决此问题,这样操作:
进入 github 中该项目的 Settings 页面;
设置 Default Branch 为其他的分支(例如 dev);
重新执行删除远程分支命令。
把本地tag推送到远程:git push --tags(这个貌似不需要执行)
获取远程tag:git fetch origin tag <tagname> (这个貌似也不需要执行)
删除远程tag(暂时不知道干嘛用的):git push origin --delete tag <tagname>
重命名远程分支:
先删除远程分支,
然后重命名本地分支,
再重新提交一个远程分支
删除master分支并替换master分支(跟重命名的有些类似)
先基于master创建一个分支作为备份
删除master远程分支(远程删除,出错的话参考上面)
重命名刚才备份的本地分支
通过git push origin master将分支上传
之后上github上把Default Branch重新改成master(参考远程删除报错后的设置图)
参考链接 https://blog.csdn.net/q85647842/article/details/107225097
将远程分支同步到本地(提前是本地这个分支不存在):git checkout -b 本地分支名 origin/远程分支名(例如:git checkout -b dev origin/dev)
远程分支拉取到本地可能出现下面的问题:
会出现下面的提示
fatal: Cannot update paths and switch to branch 'dev2' at the same time.
Did you intend to checkout 'origin/dev2' which can not be resolved as commit?表示拉取不成功。我们需要先执行
git fetch(也可以用git pull --all 建议直接用这个,直接点防止冲突)然后再执行一下刚才的那个git checkout xxx ......
16、还原代码(恢复到更改前到状态)
先查看当前改的文件:git status
还原当前删除的文件到最新版本:git ls-files --deleted
还原当前的目录到最新版本:git checkout --目录名/