Git命令

91 阅读2分钟

 从远程仓库中克隆某个子文件夹内容

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
 #合并(startend)之间的提交,不包含start
 git cherry-pick start-commit-hash..end-commit-hash
 #合并(startend)之间的提交,包含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