git常用命令

103 阅读5分钟
1.  git branch -a  查看当前项目的所有分支情况
2.  git branch   查看当前的分支
3.  git branch -m oldBranchName newBranchName 修改本地git分支名称
4.  git checkout   切换分支
5.  git checkout -b ***newbranchname***  切换并创建一个新的分支
6.  git add  .   提交修改内容至缓存区
7.  git commit -m ' '    提交git修改内容的备注信息
8.  git commit --amend 修改最后一次提交的commit 注释信息,按 i 键进入编辑模式
9.  git push    推送git至远程仓库
10.  git pull   拉取最新的内容至本地仓库
11.  git status     查看当前git状态
12.  git log .     打印git 的提交日志
13.  git reset --soft HEAD^ 回退本地提交commit
14.  git branch -vv 查看本地分支和远程仓库关联关系
15.  git checkout --track origin/branch_name 如果远程新建了一个分支,本地没有该分支。可以利用 git checkout --track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name
16.  git branch -d <branchname> 删除指定分支
17.  git remote set-url origin url 修改新远程仓库
18.  git remote rm origin 删除现有远程仓库  
19.  git remote add origin url 添加新远程仓库
20.  git remote show origin 查看remote地址,远程分支,还有本地分支与之相对应关系等信息
21. git format-patch
    git format-patch HEAD^ 打最近的一个commit  
    git format-patch HEAD^^ 打最近的第两个commit
    报错处理,例如:"fatal: previous [rebase](https://so.csdn.net/so/search?q=rebase&spm=1001.2101.3001.7020) directory .git/rebase-apply still exists but mbox given."
    一般来说之前执行git am失败过,需要执行git am --abort
生成001.patch 002.patch文件
git am 001.patch 打入一个patch文件
git am 002.patch打入第二个patch文件
**git patch解决冲突方法**
    When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".
**这些错误,说明当前patch有冲突,不能合并,此时使用git apply --reject patch文件,强制把不冲突的文件先合并,有冲突的会生成.rej文件 ,在根据这个文件中的修改去手动执行即可 ,解决完冲突要把.rej文件删除,在执行git add . ==> git am --continue命令即可。**
22. 创建ssh Key命令: ssh-keygen -t rsa -c "xx@email.com" 

/* 注释 -t 指定密钥类型,默认是 rsa ,可以省略。  
-C 设置注释文字,比如邮箱。  
-f 指定密钥文件存储文件名。*/

接着点击,enter,输入密码
接着点击,enter,确认密码
生成密钥
cd ~/.ssh 进入生成sshKey的文件夹
-   id_rsa文件是私钥,要保存好,放在本地,私钥可以生产公钥,反之不行。
-   id_rsa.pub文件是公钥,可以用于发送到其他服务器,或者git上
23. 配置git用户信息

git config –global user.name 'yourname' 
git config –global user.email 'aaa@qq.com'

  1. 添加ssh, id_rsa.pub到gitlab的ssh-key中 image.png
  2. ssh -t git@gitee.com 检查添加到gitee上的ssh公钥是否已经生效

image.png

方法一:git reset

原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一

适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

git reset --hard commit 代码回滚 //本地回滚

如果此时已经提交至远程仓库,需要再使用 git push -f命令 //把HEAD指向旧的的版本,也就是回退的版本。

方法二:git revert

原理: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:

适用场景: 如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

26 往gitlab推代码。

git push [远程仓库名] [本地分支]:[远程分支]

For example: git push origin HEAD:master or git push

  1. git上传远程仓库代码,保留commit记录
1) git remote add origin <https://gitlab.com/zzkj/website-air.git>
 (2) git remote -v //查看是否连接到远程仓库3)git checkout -b newBranch
 (4) git push origin wo_music;

28 git Tag. 命令

1,创建标签
git tag <tagName> //创建本地tag
2,删除标签
git tag --d show(删除本地tag)
git push origin -d <tagname> (删除远程tag)
3,推到远程服务器仓库
git push origin <tagName> //推送到远程仓库
4,查看Tag
git tag //产看所有的tag列表
git show tagName //查看细节

29 git迁移新的仓库,并保留Commit信息

迁移新仓库:  
1,拉取某个旧仓库的地址到本地  
git clone old-repository  
2,进入到旧仓库的本地目录  
cd old-repository  
3,设置本地仓库新的远程仓库地址  
git remote set-url origin [https://new-repository-address.git](https://new-repository-address.git/)  
4,将本地代码push到新仓库地址,并且提交所有的commit信息  
git push -u origin --all  
5,将本地代码push到新仓库地址,并且提交所有的tags的信息  
git push -u origin --tags  
6,为本地分支创建一个远程分支  
git push origin localBranchName:remoteBranchName  
  
本地仓库上传到远程仓库:  
1,设置本地仓库的远程仓库地址  
git remote add origin [https://new-repository-address.git](https://new-repository-address.git/)  
2,将本地代码push到新仓库地址,并且提交所有的commit信息  
git push -u origin --all  
3,将本地代码push到新仓库地址,并且提交所有的tags的信息  
git push -u origin --tags  
4,为本地分支创建一个远程分支  
git push origin localBranchName:remoteBranchName