Git工具使用备忘

生成SSH-Key

     旧版git,找到 Git/bin/ssh-keygen.exe,命令行执行:ssh-keygen.exe -t rsa -C ***@***.com。交互提示直接都按回车,若失败,提示输入文件名称时输入id_rsa再回车。

最终需要在系统用户文件夹下的.ssh文件夹中要有 id_rsa和id_rsa.pub两个文件,用编辑器打开id_rsa.pub取得SSH-Key。

     新版git,GitBash已经集成了ssh-keygen.exe,直接在GitBash界面敲 ssh-keygen.exe -t rsa -C ***@***.com 即可。


Git命令行备忘(GitBash)

创建本地分支

git branch branchName         ———— 创建本地分支

git branch -b branchName     ———— 创建并切换到本地分支

查看本地分支

git branch

查看远端分支

git branch -a

把远端分支拉到本地

git checkout -b localNewBranchName remotes/origin/branchName

切换分支

git checkout branchName

提交代码

commit -m "提交说明"

常用push命令

git push              push所有分支

git push origin master      将本地主分支推到远程主分支

git push –u origin master   将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)

git push origin <local_branch>         创建远程分支,origin是远程仓库名。

git push origin <local_branch>:<remote_branch>    创建远程分支

查看提交记录

git log                          查看提交记录

git log -p 文件名        查看文件提交的详细diff

git log -p -2                查看最近两次详细修改的内容diff

比较两个分支的差异

git diff branch1..branch2

分支Merge

git merge remtes/origin/branch1                    将远端branch1分支merge到本地当前分支。

解决merge冲突

配置mergetool

git config–global merge.tool bc3

gitconfig –global mergetool.bc3.path 软件执行文件地址

当有merge冲突时,用git mergetool查看,处理完冲突后,commit冲突解决,再push。

Git代码仓库迁移

step1:从原库中下下仓库:

git clone --bare *****.git

step2:推到新仓库: 

git remote remove origin

git remote add origin *******new.git

git push --all --progress origin                       

关于reset、rebase、revert

reset是指将当前HEAD的内容重置,不会留任何痕迹。

git reset是撤销某次提交,此次提交之后的提交都会被退回到暂存区。

例:git reset --hard HEAD~3 会将最新的3次提交全部重置,就像没有提交过一样。


git revert是撤销某次操作,此次操作之前的commit都会被保留

revert是撤销某次提交,但是这次撤销也会被作为一次提交进行保存。


rebase可以改变commit的顺序


清除以前上传的大文件记录

https://rtyley.github.io/bfg-repo-cleaner/     工具地址

git clone 仓库的方式:

1、  git clone 仓库地址

2、  (删除文件大小范围)java-jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git

        (删除文件)bfg--delete-files *.jar my-repo.git

        (删除目录)bfg--delete-folders .git --no-blob-protection my-repo.git

3、cd some-big-repo.git

4、git reflog expire--expire=now --all && git gc --prune=now --aggressive

5、git push

 

最后一步push肯定不会成功,可行的方法:

1、git push originmaster:temp    ,将代码推到远端服务器作为新分支。

2、远端服务器将temp作为默认分支,并删除master分支。

3、git pushorigin --all –force      ,将本地代码推到远端作为master分支。

4、在远端服务器将master设置为默认分支。

 

git clone –bare 仓库的方式:

         前面步骤都一样,就是最后一步push的步骤不同。

         此种方式要新建一个project,将代码通过仓库迁移的方式push上去。并把这个project的名字改成和原来的project名字一样。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值