从远程仓库中克隆某个子文件夹内容
1. git init test && cd test //新建仓库并进入文件夹
2. git config core.sparsecheckout true //设置允许克隆子目录
3. echo 'childfile*' >> .git/info/sparse-checkout //设置要克隆的仓库的子目录路径
//空格别漏 --这里的子目录路径支持深层访问--echo P1/P1-1/P1-1-1 >> .git/info/sparse-checkout
4. git remote add origin yourGitUrl //这里换成你要克隆的仓库的URL
5. git pull origin master //下载
6.git push -u origin master//推送,-u是为了之后推送的时候直接git push就行了
使用ssh拉取仓库代码
配置用户名和邮箱
$ git config --global user.name myname
$ git config --global user.email myemail
生成密钥对
ssh-keygen -t rsa -b 4096 -C myemail
生成的文件夹中打开id_rsa.pub复制内容//生成的文件位置:C:\Users\asd\.ssh,asd是用户文件夹名
打开github或者其他的远程仓库,新增ssh key 将内容复制到Key中
回到gitbush,
测试输入 ssh -T git@github.com
codin仓库使用的是: ssh -T git@e.coding.net
将代码保存到堆栈中
git stash -->切换分支-->切回来-->git stash pop
拉取代码
git pull git fetch
++git pull --我常用来拉取某个分支的远程仓库代码
++git fetch --用来更新仓库信息,常用于远程仓库创建分支后,本地更新分支信息
添加文件到暂存区
单个文件:git add +文件(夹)路径所有文件: git add -A \ git add --all
文件没有add,撤销本地的更改
撤销所有的文件修改:git checkout 撤销单个文件的修改:git checkout +文件(夹)路径
文件已经add添加到了暂存区,撤销操作
撤销所有文件:git reset HEAD
撤销单个文件:git reset HEAD +文件(夹)路径
提交add的文件
git commit -m'提交信息'
撤销上次提交的commit
git reset --soft HEAD^
切换HEAD指针到某次提交记录(类似于本地回滚到某个历史版本)
git reset --hard 5b3a10f // 5b3a10f 某次提交的id值
配合强制推送,能够修改远程仓库
git push -u origin master -f / git push -f
分支合并
将B分支代码合并到A分支
git checkout A
git pull
git merge B
分之上某几个commit合并到其他分支
Git 1.7.2版本之后新增了cherry-pick支持某几个commit的合并
#分散的几个commit
git checkout master
git cherry-pick commit-hash1 commit-hash2 //(参数是commit-id)
#连续的几个commit
#合并(start,end)之间的提交,不包含start
git cherry-pick start-commit-hash..end-commit-hash
#合并(start,end)之间的提交,包含start
git cherry-pick start-commit-hash^..end-commit-hash
其他的更多关于cherry-pick的使用,阮一峰老师这篇文章说的很详细 use-cherry
查看某次提交记录具体的修改信息
git shouw commitId
查看某次提交记录具体的修改信息
git报错
// unable to create file fileName.js :Permission denied
需要配置
git config --global core.longpaths true