远程仓库
- 什么是远程仓库
- 要参与任何一个 Git 项目的协作, 必须要了解该如何管理远程仓库。 远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分 支,定义是否跟踪这些分支,等等。本节我们将详细讨论远程库的管理和使用
- 远程仓库和git区域的组成
和远程仓库之间传递文件常见的操作指令
- 操作本地的git版本库的内容
- 1、我们在本地目录中新增一个文件
- 2、使用 git add 命令将新文件推送到暂存区
- 3、使用 git commit 命令将文件推送到本地仓库
- 和远程仓库之间进行的常用操作
- 1、git clone 远程ssh地址
- 可以将一个远程仓库,完全的移植到本地,并创建一个一模一样的本地仓库,一般用来项目最开始进行代码拷贝
- 2、git push origin 本地分支名: 远程分支名
- 将本地分支合并到远程分支
- 如果省略远程分支将会将分支合并到远程的同名分支上
- 如果省略本地分支,将会删除远程的该分支
- 3、git pull origin 远程分支名:本地分支名
- 将origin厂库的分支拉取并合并到本地的my_test分支上
- 如果省略本地分支,将会自动的合并到当前分支上
- 4、git fetch origin 远程分支名
- 获取远程分支的提交记录,但是不会自动的进行合并的操作,只是对远程的提交进行拉取
- 5、git checkout --<文件>
- 可以将本地仓库文件拉到本地工作目录中
- 6、git remote -v
- 查看远程仓库
- 7、git remote rm [name]
- 删除远程仓库
- 8、git remote set-url --push [name] [newUrl]
- 修改远程仓库
- 9、git remote add [name] [url]
- 添加远程仓库
- Git常用命令汇总
- git branch 查看本地所有分支
- git status 查看当前状态
- git commit 提交
- git branch -a 查看所有的分支
- git branch -r 查看本地所有分支
- git commit -am "init" 提交并且加注释
- git remote add origin git@192.168.1.119:ndshow
- git push origin master 将文件给推到服务器上
- git remote show origin 显示远程库origin里的资源
- git push origin master:develop
- git push origin master:hb-dev 将本地库与服务器上的库进行关联
- git checkout --track origin/dev 切换到远程dev分支
- git branch -D master develop 删除本地库develop
- git checkout -b dev 建立一个新的本地分支dev
- git merge origin/dev 将分支dev与当前分支进行合并
- git checkout dev 切换到本地dev分支
- git remote show 查看远程库
- git add .
- git rm 文件名(包括路径) 从git中删除指定文件
- git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
- git config --list 看所有用户
- git ls-files 看已经被提交的
- git rm [file name] 删除一个文件
- git commit -a 提交当前repos的所有的改变
- git add [file name] 添加一个文件到git index
- git commit -v 当你用-v参数的时候可以看commit的差异
- git commit -m "This is the message describing the commit" 添加commit信息
- git commit -a -a是代表add,把所有的change加到git index里然后再commit
- git commit -a -v 一般提交命令
- git log 看你commit的日志
- git diff 查看尚未暂存的更新
- git rm a.a 移除文件(从暂存区和工作区中删除)
- git rm --cached a.a 移除文件(只从暂存区中删除)
- git commit -m "remove" 移除文件(从Git中删除)
- git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
- git diff --cached 或 $ git diff --staged 查看尚未提交的更新
- git stash push 将文件给push到一个临时空间中
- git stash pop 将文件从临时空间pop下来
- 常用功能
- 将本地项目给提交到服务器中
- git remote add origin git@github.com:username/Hello-World.git
- git push origin master
- 本地与服务器端同步
- git pull
- 将本地分支推送到服务器上去
- git push (远程仓库名) (分支名)
- git push origin serverfix:awesomebranch
- 从远程获取最新版本到本地,不会自动merge
- git fetch
- (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端
- git commit -a -m "log_message"
- 从主分支master创建branch_0.1分支
- git branch branch_0.1 master
- 将branch_0.1重命名为branch_1.0
- git branch -m branch_0.1 branch_1.0
- 切换到branch_1.0/master分支
- git checkout branch_1.0/maste
- 完整的提交过程实例
- mkdir WebApp
- cd WebApp
- git init
- touch .gitignore
- git add .gitignore
- touch README
- git add README
- git commit -m 'first commit'
- git remote add origin git@git.xxx.cn:application/test.git
- git push -u origin master
使用Github
- 创建远程仓库
- 点击创建远程仓库
- 创建一个新的远程仓库
- 创建成功后的界面
- 添加github的ssh账户
- github和本地版本仓库是通过ssh进行通讯的,所以需要配置ssh
- 点击New SSH key 给github账户添加ssh账户
- 在ubuntu的家目录中先删除.ssh文件
- rm -rf ~/.ssh
- 修改git的使用用户和邮箱,提交的时候,将会永久性的记录提交人的信息
- 生成密钥,提供给github注册使用;
- 进入主目录下的.ssh 文件夹,复制id_rsa.pub 的内容
- 将公钥添加到github的注册ssh用户中的key中
- 克隆项目/文件
- 进入远程版本仓库
- 复制远程仓库的地址
- 在命令行中clone刚才复制地址的内容到当前目录
- github上传分支
- 目前的状态:
- 现在我们已经将github中的项目移植到了本地主机中,现在本地的项目和github上的完全一样,现在我们先通过在本地创建分支,然后再同步到github上
- 创建一个分支:
- 创建一个文件,然后进行一次版本提交
- 推送分支到github上
- 在github网页上浏览提交分支后的结果
- 跟踪远程分支
- 将本地分支跟踪服务器分支
- git branch --set-upstream-to=origin/远程分支名称 本地分支名称
- 本地分支的内容将跟踪远程的分支,之后使用pull push 等将会自动的从跟踪的分支上拉取或上传
- git pull origin 将自动同步跟踪分支到远程分支最新的提交
- 获取\上传远程的分支
- 从远程分支上拉取代码
- git pull orgin 远程分支名:本地分支名称
- 使用上述命令会把远程分支上的代码下载并合并到本地所在分支
- 如果本地分知名和远程分知名一样,那么可以只写远程分支名
- 将分支上传到远程仓库
- git remote add origin 仓库地址 在本地添加一个名为origin的远程仓库
- git push -u origin master
- 错误处理
- 提示错误信息如下:
- sign_and_send_pubkey: signing failed: agent refused operation
- 错误原因:
- 在 ssh 账户中没有加入新生成的密钥
- 解决:
- 将密码加入 ssh 账户,逐条运行如下命令
- eval "$(ssh-agent -s)"
- ssh-add