1.添加仓库的时候出现的错误
$ git add readme.txt
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory
这里的原因是linux中的换行是LF而在windows下是用CRLF 这里需要的命令是可以直接禁止转换
$ git config --global core.autocrlf false
我这里是百度得到blog.csdn.net/qq_37189082…
2.Git的常用命令
mkdir learngit
cd learngit //一定要在自己创建的工作目录下
git init //这里是初始化仓库,会生成.git隐藏文件夹
vim readme.txt //在创建的目录下编辑readme.txt文件,
touch file1 file2 file3 // 这里的是创建你需要的文件
git add readme.txt //把readme.txt文件加入到仓库中
git commit -m "creat readme文件" //这里是设置提交的文件的说明,以便别人浏览和自己查看不同的版本
git diff readme.txt //查看提交的文件的区别,可以查找修改了哪些
git reset --hard HEADE^ //回到上一版本
git log // 可以查看提交修改的每一个步骤
git log --pretty=oneline //简洁的显示,一行的显示提交的写的描述信息commit -m “提交的信息”
git reset --hard 98878 //这个恢复到固定的一个版本,后面添加的是ID唯一标识码
git reflog //这个查看以前的用的命令行可以查看以前提交信息,ID以便回到以前的版本中
3. 这里是远程仓库的管理
推荐廖雪峰的教程www.liaoxuefeng.com/wiki/896043…
$ ssh-keygen -t rsa -C "youremail@example.com"
然后自己注册一个github托管账号里面设置ssh
4.关联一个远程库
git remote add origin git@github.com:hanmo-1/learngit.git // 这里的origin库是远程库的名字,可以任意,只不过是默认习惯的命名
git push -u origin master // 首次提交的时候需要用-u命令
git remote rm -v // 在删除远程库的时候用这里来查看有哪些远程库
git remote rm origin // 这样就可以删除远程库oringin
5.解决clone中出现的问题
linjian@LAPTOP-59GF4RKD MINGW64 ~
$git clone git@github.com:hanmo-1/gitskills.git
bash: $'\302\203\302\203git': command not found //出现这个是因为直接从github中进行复制后有空白行
这里我自己是直接敲的就不会有这个问题
6.关于分支
git checkout -b dev
git branch master //这两条都是创建分支
git switch master
git branch // 查看分支
git branch -d dev // 删除一个分支
git merge --no-ff -m "合并成新的" dev //合并到master下
git merge dev // 是不会留下分支记录的fasting forward合并方式
git stash //将当前还没提交的分支情况保存下来,可以先处理其他的分支或者主分支的事 比如修复BUG
git stash list //用来查看之前保存的工作现场
git stash apply //用来恢复之前保存的工作现场
git stash drop //用来丢弃上stash上的内容
git stash pop //可以一次性恢复并且删除stash上的内容
git stash apply stash@{0} // 这里是直接可以恢复其中的一个分支工作现场
git cherry-pick 4c805e2 // 可以把在一个分支修改的工作同时可以改到分支上,其中的数字是修改分支的id
git branch -D feature-vulcan // 强行删除一个还没合并的分支 这里是和删除之前修改bug类似
// 这里主要是模拟需要增加功能,但是改好了还没合并的情况
git checkout -b dev origin/dev //这里表示创建分支并且将分支提交到远程origin的分支
// 这里可以使用git remote -v来查看
git push origin dev // 远程库更新
//如果更新失败是因为同样的伙伴也在更新了dev,
git pull // 使用这个命令来把最新的提交抓取下来,然后本地合并
git branch --set-upstream-to=origin/dev dev //这里是pull有问题的提示,是因为没有指定本地的dev分支与远程的origin/dev分支链接,这个命令就是将dev与origin/dev的链接
//这里在进行git pull成功后就是把远程的origin/dev抓取下来了,所有有两个平行的分支这样就会有合并有冲突,这就要开始解决冲突后再提交
7. 关于rebase
理解比较难可以参考 blog.csdn.net/liuxiaoheng…
8.给commit的加标签
git tag v0.9 // 给当前HEAD提交的版本加标签
git tag //查看所有标签
git show v1.0 //显示具体的tag信息
git push origin v1.0 //推送标签到远程
git push origin --tags //将还没有推到远程的tag全部一次性推到远程
git tag -d v0.9 //删除本地加的标签
git push origin :refs/tags/v1.0 //删除远程提交的tag
git tag -a v1.0 -m "指定标签信息" 109ag //增加标签信息说明
9.使用gitee
使用gitee也和使用github一致 要将.ssh/中的rsa.pub复制到gitee中的ssh中就可以了
git remote add gitee git@gitee.com:hanmoly/learngit.git //关联gitee中的仓库名字最好和本地一致
git remote add github git@github.com:hanmo-1/learngit.git // 同样的也要是使用仓库的名字和本地一致
git push github master
git push gitee master //向远程推送
git log -graph --pretty=oneline --abbrev-commit // 这个是查看分支情况
10.git配置
配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.st status
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg ""log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中 而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中
10.搭建自己的git服务器
参考廖雪峰www.liaoxuefeng.com/wiki/896043… 11.source tree出现的问题 这里主要是出现push时候出现密钥ssh没有 参考:blog.csdn.net/weixin_3786… putty/plink是一个连接telnet和ssh协议的软件 openssh也是一个支持连接ssh协议的软件
11.补充
删除远程库的分支
linjian@LAPTOP-59GF4RKD MINGW64 /d/桌面/matlab串口资料 (master)
$ git push gitee --delete dev //删除远程库的分支
remote: Powered by GITEE.COM [GNK-5.0]
To gitee.com:hanmoly/signal-process.git
- [deleted] dev
12.使用心得 本地的库和远程的库是相对独立,在自己的库中产生分支,合并,最后再将其向上提交,到远程库(这个远程库是可以多个不同的库之间也是相对独立的,要像合并)