首先:搭建了git平台,那就有一个属于你们自己的网址 比如:http://101.***.***.***:8088,(打开会进入一个登录页面的)
如下图:
图一:
图二:
图三:
图四:
上面的图片好像需要一个key? 那么问题就就来了,key 怎么获取呢
下面我讲一一介绍
在图三中,
《点击上面图片 上的 add an SSH key 》,会进入到一个页面,此页面是 添加SSH key 的说明,不过是英文的,自己可以去百度翻译下,中文的可以自己去看其他的博客
比如参考博客:http://blog.163.com/www_iloveyou_com/blog/static/2116583722013111113954760/
我们可以通过命令行来生成SSH key
administrator:~ administrator$ cd ~/.ssh
-bash: cd: /Users/administrator/.ssh: No such file or directory
administrator:~ administrator$ config id_rsa id_rsa.pub known_hosts
-bash: config: command not found
administrator:~ administrator$ ssh-keygen -t rsa -C "添加自己的邮箱"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/administrator/.ssh/id_rsa):
Created directory '/Users/administrator/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/administrator/.ssh/id_rsa.
Your public key has been saved in /Users/administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IdZ/tJj2Sf/vVcEaABT268Clacr58pxEx0oQs+Fn6CU 1208535097@q q.com
The key's randomart image is:
+---[RSA 2048]----+
| +.=o. |
| ..B . . . |
| oEo+ o.. o |
| ...Bo=+..o .|
| .SO=++. .|
| . *.=+ o .|
| + o .o . .|
| .+ . ..|
| o= .=|
+----[SHA256]-----+
administrator:~ administrator$ pbcopy < ~/.ssh/id_rsa.pub
administrator:~ administrator$ git add .
fatal: Not a git repository (or any of the parent directories): .git
administrator:~ administrator$ git config --global user.name "mjq"
administrator:~ administrator$
最后得到了两个文件:id_rsa和id_rsa.pub:在此目录下,自己可以搜到到,下面会用到的哦
Your identification has been saved in /Users/administrator/.ssh/id_rsa.
Your public key has been saved in /Users/administrator/.ssh/id_rsa.pub.
然后自己去上面图片显示的页面 去 添加 SSH key
保存以后,再次刷新 第二个页面时,没有出现
you won't be able to push project code via SSH until you add an SSH key to you profilesh
说明ssh key 已经添加好了(当然,有些git 不添加也可以去使用,当你的git 服务器没有使用SSH ,使用的是http时候,就不需要配置ssh)
-------------------------------------------------------
上面的事情就可以告一段落了,如果这样就认为这是一个和谐社会,那你就想多了
不是说好的 git 管理代码的使用说明,好像什么都没有说呀
哈哈哈......
我们继续
下面将隆重介绍 git 的使用方法 及其 常见问题的解决方案:
********************** 功能:上传项目到 git **********************
前提: 把项目里面 自带的git 文件删除,如果不删除,输入命令git init 时,
会显示Reinitialized existing Git repository in.. ..
再输入 git status 时,
On branch masternothing to commit, working directory clean(翻译:无提交,工作目录清洁)
当你把项目修改过,执行第一步中的 cd /Users/administrator/Desktop/BYM3.4 、第二步git status ,后此时会出现On branch masterChanges to be committed: (use "git reset HEAD..." to unstage)modified: asd.xcodeproj/project.pbxprojnew file: asd/dd.hnew file: asd/dd.m(这些文件是你修改的文件,不用管它)执行第三步就好,然后,继续执行就可以了
第一步:
administrator:~ administrator$ cd /Users/administrator/Desktop/BYM3.4
administrator:BYM3.4 administrator$ git init
Initialized empty Git repository in /Users/administrator/Desktop/BYM3.4/.git/
第二步:
administrator:BYM3.4 administrator$git status
On branch masterInitial commitUntracked files: (use "git add..." to include in what will be committed)
WGZY.xcodeproj/
WGZY/
WGZYTests/
nothing added to commit but untracked files present (use "git add" to track)
第三步:
administrator:BYM3.4 administrator$ git add .
第四步:
administrator:BYM3.4 administrator$git commit -m "first commit"
[master (root-commit) c016112] first commit
1737 files changed, 111203 insertions(+)
create mode 100755 WGZY.xcodeproj/project.pbxproj
create mode 100755 WGZY.xcodeproj/project.xcworkspace/contents.xcworkspacedata
create mode 100755 WGZY.xcodeproj/project.xcworkspace/xcshareddata/WGZY.xccheckout
….(省略很多)
create mode 100755 WGZYTests/Info.plist
create mode 100755 WGZYTests/WGZYTests.m
第五步:
administrator:BYM3.4 administrator$ git remote add origin http://git.baiyimao.com/baiyimaoDevolep/iOS.git
第六步:
administrator:BYM3.4 administrator$ git push origin master
Counting objects: 1873, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1858/1858), done.
Writing objects: 100% (1873/1873), 92.43 MiB | 411.00 KiB/s, done.
Total 1873 (delta 312), reused 0 (delta 0)
To http://git.baiyimao.com/baiyimaoDevolep/iOS.git
* [new branch] master -> master
administrator:BYM3.4 administrator$
上述是比较顺利的 中间没有什么插曲,但是,时间如果有这么多的一番风顺,那么博客就不用写着么多了,
下面我将介绍一下 常见的问题:
问题一
输入如下命令时:
administrator:BYM3.4 administrator$git push origin master
错误:
To http://git.baiyimao.com/baiyimaoDevolep/WGZY.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'http://git.baiyimao.com/baiyimaoDevolep/WGZY.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
解决方案:
在使用git 对源代码进行push到gitHub时可能会出错,信息如下
此时很多人会尝试下面的命令把当前分支代码上传到master分支上
$ git push -u origin master
但依然没能解决问题
出现错误的主要原因是github中的README.md文件不在本地代码目录中
可以通过如下命令进行代码合并【注:pull=fetch+merge]
git pull --rebase origin master
执行上面代码后可以看到本地代码库中多了README.md文件
问题二
输入如下命令时:
administrator:GitTestAAA administrator$ git remote add origin git@iZ23bbkx4wiZ:test/WGZY.git
错误如下:
fatal: remote origin already exists.
解决方案:
1、先輸入$ git remote rm origin
2、再輸入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不會報錯了!(根据自己的服务器的地址来)
3、如果輸入$ git remote rm origin 還是報錯的話,error: Could not
remove config section 'remote.origin'. 我們需要修改gitconfig文件的內容
4、找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
5、找到一個名為gitconfig的文件,打開它把裡面的
[remote "origin"]那一行
刪掉就好了!
问题三
输入命令如下:
administrator:GitTestAAA administrator$git init
错误:
Reinitialized existing Git repository in /Users/administrator/Desktop/GitTestAAA/.git/
解决方案: 在前面已经说了
问题四:
输入命令如下:(clone 项目代码)
git clone http://git.baiyimao.com/Test/iOS.git
错误:
Username for 'http://git.baiyimao.com': 123456789@qq.com
Password for 'http://739929409@qq.com@git.baiyimao.com':
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://git.baiyimao.com/test/iOS.git/'
fatal: not in a git directory
解决方案:原因是 没有 初始化git,输入命令行即可 git init ,然后再去clone 项目(把项目clone到一个指定的文件里面 做法是
cd /Users/administrator/Desktop/testProject01
)
其他问题
在 Mac 文件的文件名前添加 . 即可使文件隐藏
也可以在终端里面能用命令来控制
显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES
隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO
命令运行后需要按 Command Option Esc 选中 Finder 然后点一下 重新开启 就 Ok 了
注:
但别人把项目 clone 下来以后,然后与 remote origin (远程仓库)重新连接,这样就可进行多人管理代码了:git remote add origin git@iZ23bbkx4wiZ:baiyimaoDevolep/WGZY.git
参考博客: