学习笔记《git》
引用广大部分网友博文
下面我用ubuntu 10.10上的命令为例
- 安装:
$ sudo apt-get install git
$ sudo apt-get install gitk #此为安装官方的图形界面,不需要的可以不安装 - cd到需要管理的代码、文件所在的第一级目录
- 初始化: $ git init
- 添加当前目录所有内容: $ git add .
- 查看状态: $ git status
- 添加commit: $ git commit -am "first commit."
- 版本对比: $ git diff
- 查看历史记录: $ git log
- 分支操作
查看分支:$ git branch
创建分支:$ git branch 分支名称 (注意:请不要在服务端建立分支)
切换分支:$ git checkout 分支名称
删除分支:$ git branch -d 分支名称 - 加入服务器 $ git remote add 用户名@计算机名或IP:~/某个目录
- 推送数据 $ git push master master #本地master推送到远端master
如果想快捷的使用git push就推送到默认远端分支master,可以做个一次性设置:
$ git remote add origin <实际的ssl用户名>@<IP地址>:<Git在远端的path>
做完以上设置,以后直接使用git push 就会自动推送到上述设置地址了,但如果要推送到其他分支,还是需要加参数的,这个设置只是相当于一个默认参数而已。 - 接收数据 $ git pull origin master 如果想直接使用git pull直接接收,同样需要提前做一个一次性设置(同样也是不能应用多分支pull情况):
$ git branch --set-upstream master origin/master - 本地库设置个人姓名和邮件
$ git config --global user.name "你的姓名,最好由没有符合和空格的英文字母组成"
$ git config --global user.email <邮件名>@<邮箱服务商后缀>
如果不设置个人信息,提交的信息将不会有更改者信息,这样会加大项目管理的难度。 - 启动图形界面 $ gitk
git修改远程仓库地址,方法有三种:
1.修改命令
git remote set-url origin [url]
2.先删后加
git remote rm origin
git remote add origin [url]
3.直接修改config文件
执行shell_exec('git pull 2>&1 origin Dev')报错
fatal: could not read Username for 'https://github.com': No such device or address
解决方法:
git remote add origin https://{username}:{password}@github.com/{username}/project.git
或者
git remote set-url origin https://{username}:{password}@github.com/{username}/project.git
更多Git 基础指令远程仓库的使用
指令持续更新
下面记录一下使用git过程中遇到的奇奇怪怪的问题。
执行sudo -u www-data git status时,总会出现一行提示,
sudo: unable to resolve host seekt
执行git pull时出现报错,
Read from socket failed: Connection reset by peerfatal: The remote end hung up unexpectedly
这个问题查了一下是ssh链接错误,然后执行ssh -vvv 112.124.0.0(服务器地址.),出现信息,
OpenSSH_6.6.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 112.124.26.22 [112.124.26.22] port 22.
debug1: connect to address 112.124.26.22 port 22: Connection refused
ssh: connect to host 112.124.26.22 port 22: Connection refused
。
error: Ref refs/remotes/origin/master is at 3610a22c8b94ff2d4643d6de2c624a82bc9ef43f but expected f36532783a6551c8dcdf8d8975e8d54b44e384d3 From github.com:(git user name)/(project name)! f365327..cd0be45 master -> origin/master (unable to update local ref)
。
Received disconnect from 192.30.0.0: 11: Bye Bye
fatal: The remote end hung up unexpectedly
执行git push时出现报错,
Pushing to https://github.com/samon127/clownfish.git
fatal: unable to access 'https://github.com/samon127/clownfish.git/': Failed to connect to github.com port 443: Operation timed out
这里是由于我是anonymous匿名操作会出现这个情况,改为使用我自己的git账号操作就可以了