将用户的公钥文件 如 **.pub 拷贝到 gitolite-admin\keydir文件夹下,做一次提交,并push到服务器。
2、新建仓库隐早和设置用户权限
修改 gitolite-admin\conf\gitolite.conf 文件,加入权限和需要新建的仓库名,灶乱雀做一次提交,并push到服务器,这时候在服务器上就生成了新建的仓库。
例如:
@group = user1 user2
repo test
RW+C = user3
RW br1 = @group
RW refs/tags/ = user1 user3
2.1 @group = user1 user2group组有 user1、user2 两个用户
2.2 repo test test 是仓陪弯库名
2.3 RW+C = user3 user3 有“读、写、强制更新、创建分支 ”权限
2.4 RW br1 = @groupgroup组对br1分支有读写权限
2.5 RW refs/tags/ = user1 user3 user1和user3有打tag的权限
当使用HTTPS协议推送代码到Git仓库时,发现每次都需要输入密码, *** 作起来非常麻烦。下面介绍几种免去输入密码的方法。HTTPS协议推送
使用HTTPS协议,有一种简单粗暴的方式是在远程地址中带租吵岁上密码。
>git remote set-url origin http://yourname:[email protected]/yourname/project.git
还有一种方法,是创建文件存储Git用户名和密码。
以Windows环境为例,在%USERPROFILE%目录中(一般为C:\Users\yourname),打开Git Bash命令行,创建文件
>touch .git-credentials
在文件中输入仓库域名,这里使用了bitbucket.org。
https://yourname:[email protected]
在CMD终端中设置在全局Git环境中,长期存储密码
>git config --global credential.helper store
其他设置密码方式
记住密码(默认15分钟):git config --global credential.helper cache
自定义存储时间:git config credential.helper 'cache --timeout=3600'
SSH协议推送
如碰凳果原来的推送地址协议是HTTPS,可以通过弊睁换成SSH协议,在远程仓库添加SSH Key来实现推送时免账户密码输入。
>git remote -v // 查看远程地址
>git remote rm origin // 删除原有的推送地址
>git remote add origin [email protected]:<用户名>/版本库名
或者
>git remote -v
>git remote set-url origin [email protected]:<用户名>/版本库名
执行推送。
>git push -u origin master
发现提示权限不够。
The authenticity of host 'bitbucket.org (104.192.143.1)' can't be established.
RSA key fingerprint is SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,104.192.143.1' (RSA) to the list of kn
own hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
需要在本地创建该帐号的RSA Key。可以参考以下两篇文章:
Windows下配置SSH连接Github
Git如何在本地生成多个SSH key
然后再执行推送。
>git push -u origin master
就可以推送成功了。
1.git remote命令列出所有远程主机
2.使用-v选项,可以参看远程主机的网址
3.git remote show命令加上主机名,可以查看该主机的详细信息。
4.git remote add命令用于添加远程主机
5.git remote rm命令用于删除远程主机
6.git remote rename命令用于远程主机的改名
1.默认情况下,git fetch取回所有分支(branch)的更新到本地。
2.如果只想取回特定缓型分支的更新,可以指定分支名。
3.git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支
4.回远程主机的更新以后,可以在它的基础上,使用git checkout命令创建一个新的分支
5.在本地分支上合并远程分支,表示在当前分支上,合并origin/master
1.取回远程主机某个分支的更新,再与本地的指定分支合并
2.取回origin主机的next分支,与本地的master分支合并
3.如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
4.上述 *** 作,等同于先做git fetch,再做git merge
5.指定当前分支追踪origin/next分支。
如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名
6.如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对举如应的本地分支。
这是为了防止,由于其他人 *** 作了远程主机,导致git pull不知不觉删除了本地分支。
但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。
Git 远程仓库没有实时更新分正哪启支使用:
1.git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿
git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>
2.如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),
如果该远程分支不存在,则会被新建。
3.如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
4.如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略
5.如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,
这样后面就可以不加任何参数使用git push
6.不带任何参数的git push,默认只推送当前分支,这叫做simple方式。
此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。
Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。
如果要修改这个设置,可以采用git config命令
7.还有一种情况,就是不管是否存在对应的远程分支,
将本地的所有分支都推送到远程主机,这时需要使用--all选项
8.如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,
然后再推送到远程主机。这时,如果你一定要推送,可以使用--force选项
9.git push不会推送标签(tag),除非使用--tags选项
命令作用:
只能清空全部已修改的问题件, 但是对于新建的文件和文件夹无法清空, 必须组合下面命令
命令作用: 清空所有新建的文件和文件夹
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)