git 命令总结与学习笔记

原创
2016/10/11 00:24
阅读数 209

git 可视化工具 SourceTree TortoiseGit 也可以到官网下载 GUI

平时用到git 这里总结记录一下git命令 方便使用

//创建版本库
git init
//把文件添加到版本库
git add 文件名  全部提交 git add .
//不能提交的 可能是其他git管理占用 需要移除隐藏git管理
不能提交的目录下,用命令rm -rf  .git 移除隐藏的git文件夹,然后到根目录下git init 在执行提交操作就好了。
git commit -m "说明文字"
git pull origin master(master对应所在分支名字)
git push origin master(master对应所在分支名字)
git push <仓库名> <分支名> -f 强制推送,会覆盖远程仓库代码
//分支切换
git branch -r //查看所有远程分支
git branch //查看分支
git branch 分支名  //直接创建本地分支
git checkout 分支名字    //切换分支
git checkout -b 本地分支名x origin/远程分支名x //使用该方式会在本地新建分支x,并自动切换到该本地分支x。
git fetch origin 远程分支名x:本地分支名x //使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。

///添加本地到远程仓库地址
git remote add origin xxxx/xxxx.git
///将本地的添加到远程仓库并关联分支 [如下是 master本地和远程的master产生了关联,并且全部内容也push到了远端]
git push -u origin master
///上述操作之后正常使用:
git push origin master

//版本回退
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit_id
用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

git reset --hard HEAD^ //回到上一个版本 同时舍弃所有修改
git reset --hard HEAD^^ //回到上上一个版本 同时舍弃所有修改
git reset --hard HEAD~100 //回到之前第100个版本 同时舍弃所有修改
git reset --soft HEAD^ //回到上一个版本 只是还原commit不会舍弃修改

根据--soft --mixed --hard,会对working tree和index和HEAD进行重置:
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

git 2.9.2以上遇到的问题
pull 提示fatal: refusing to merge unrelated histories

我在Github新建一个仓库,写了License,然后把本地一个写了很久的项目进行上传。

先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull

因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,这句代码是在git 2.9.2版本发生的,最新的版本需要添加 --allow-unrelated-histories

假如我们的源是origin,分支是master,那么我们 需要这样写git pull origin master --allow-unrelated-histories需要知道,我们的源可以是本地的路径

The following untracked working tree files would be overwritten by merge .DS_Store pull的时候遇到这个问题

解决方法:

Git clean -d -fx .DS_Store 
x -----删除忽略文件已经对git来说不识别的文件
d -----删除未被添加到git的路径中的文件
f -----强制运行

//规避大文件上传的一种方法记录

那么第一步输入命令 cd /Users/Dora/Desktop/XXX(cd后面的这个路径要换成你自己项目的路径)
然后第二步输入命令 git rm --cached /Users/Dora/Desktop/XXX/XXX/**libbaiduNaviSDK.a**
第三步输入命令 git commit --amend -CHEAD,执行完这步后,这个大文件将会从你的commit记录里移除,并且以后commit都将不会再把它commit了,这时候就可以git push把本地代码push到github/码云上了。

你可以按如下命令来生成 sshkey:
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  
# Generating public/private rsa key pair...
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

git log --oneline --graph  查看提交记录 比较直观
展开阅读全文
Git
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部