一 git安装
sudo apt-get install git
二 git基本配置
1 用户信息
git config [--global] user.name "name"
git config [--global] user.email "email"
--global选项会配置覆盖整个系统的用户信息
2 查看配置信息
git config --list
会读取.git/config中的信息
三 获取git仓库
获取git仓库有两种方式
1 在现有目录初始化仓库
git init
将创建一个.git的目录,用于跟踪文件
然后调用
git add xxx.c 添加对指定文件的跟踪
git add LICENSE
git commit -m 'initial project version'
2 克隆远程仓库
git clone [url]
四 上传文件
本地仓库中的每个文件有两种状态,已跟踪的和未跟踪的。
已跟踪的文件有未修改,已修改,已放入暂存区。
可以用git status查看状态 -s参数可以查看文件详细状态,??为未跟踪文件,A新添加导暂存区,M已修改
git diff 查看修改的内容
git commit -m "更改日志" --amend -m"修改上次说明"
git push [远程仓库名] [远程分支]
五 remote常用命令
git remote 输出远程仓库的名字
git remote -v 远程仓库名字和对应的url
git remote show 远程仓库名称 远程仓库详细信息
git remote add 仓库名称 url 在指定url上创建指定名称的仓库
git remote rm 仓库名 删除远程仓库
git remote set-head origin master 指定远程仓库origin的master为主分支
六 branch常用命令
git branch 查看本地分支 --track将本地分支关联远程分支
git branch -a 查看远程分支
git -m branch 分支名 新分支名 重命名分支
git branch 分支名 创建新的本地分支
git branch -d 分支名 删除本地分支 -D强行删除
git checkout 分支名 切换到指定分支 -b参数表示创建一个分支,并切换到新分支
git merge <分支> 将分支合并到当前分支 --no-ff禁用Fast forward模式,默认会启用Fast forward模式,这种模式下,删除分支,会丢掉分支信息
七 其他常用命令
git reset --hard [提交版本号] 恢复指定版本的状态,放弃所有修改,默认为最近一次提交
--soft只是撤销已提交的版本库,不会修改暂存区和工作区
--mixed只是撤销已提交的版本库和暂存区,不会修改工作区
git checkout -- 文件名 将文件恢复为暂存区的内容
git log 查看提交记录 --graph查看分支合并
git pull 远程主机名 远程分支名:本地分支名 拉取远程分支并与本地分支合并
git fetch 远程主机名 [分支名] 拉取远程分支,但是不合并
git push 远程仓库名 本地分支:远程分支 将本地分支推送到远程仓库 -u指定默认远程仓库,不需要再指定远程主机名
git push 远程仓库名 :分支名 删除远程分支,冒号不能少
git tag 查看所有标签
git tag 标签名 [提交版本号] 为提交的版本号添加一个别名,容易查看,默认为最后一次提交的版本加tag \
git tag -a v0.1 -m "version 0.1 released" 3628164 将3628164提交版本号打上一个v0.1的标签, -m为tag的说明
git tag -d 标签名 删除标签
git checkout 标签名 切换到指定标签 需要记住最开始的提交版本号,否则用resert --hard 返回不了
git push 远程仓库 标签名 将标签推送到远程
git push --tags 将本地所有tag推送到远程
git stash 将已修改未提交的文件储存起来,使工作区恢复到最后一次提交状态
git stash list 查看存储的内容
git stash pop 恢复到git stash的状态
八 工作区和暂存区
工作区:即代码目录
版本库:.git的隐藏文件 里面有一个暂存区,通过git add的文件就放在暂存区
通过git commit将暂存区的内容放到分支
九 忽略文件
在.gitignore中添加相应的规则,如屏蔽.so文件,添加 *.so 即可
十 服务器git搭建
1 将现有仓库my_project导出为裸仓库
git clone --bare my_project my_project.git
效果相当于cp my_project/.git my_project.git -rf
2 将裸仓库放到服务器上
scp -r my_project.git 主机名@服务器地址:服务器目录
如果出现connect to host 9.123.159.41 port 22:connection refused 应该是ssh未安装
3 连接远程仓库
git remote add gittest url:绝对路径/gittest.git
4 权限管理
gitosis
十一 git修改本地指向的远程地址
1.修改命令
git remote set-url origin [url]
例如:Git remote set-url origin gitlab@gitlab.chumob.com:PHP/hasoffer.git
2.先删后加
git remote rm origin
git remote add origin [url]
3.直接修改config文件
问题1:
git push出现
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using
解决:
使用git branch --track 远程仓库/分支名 将本地分支与远程分支关联
问题2:
ms@ms:~/Data/gittest$ git commit -m"111"
On branch master
Your branch is up-to-date with 'remotes/gittest/master'.
Changes not staged for commit:
modified: abc.c
no changes added to commit
解决:
git commit -am"111" -a表示自动添加文件
或者
git add abc.c
git commit -m"111"
sudo apt-get install git
二 git基本配置
1 用户信息
git config [--global] user.name "name"
git config [--global] user.email "email"
--global选项会配置覆盖整个系统的用户信息
2 查看配置信息
git config --list
会读取.git/config中的信息
三 获取git仓库
获取git仓库有两种方式
1 在现有目录初始化仓库
git init
将创建一个.git的目录,用于跟踪文件
然后调用
git add xxx.c 添加对指定文件的跟踪
git add LICENSE
git commit -m 'initial project version'
2 克隆远程仓库
git clone [url]
四 上传文件
本地仓库中的每个文件有两种状态,已跟踪的和未跟踪的。
已跟踪的文件有未修改,已修改,已放入暂存区。
可以用git status查看状态 -s参数可以查看文件详细状态,??为未跟踪文件,A新添加导暂存区,M已修改
git diff 查看修改的内容
git commit -m "更改日志" --amend -m"修改上次说明"
git push [远程仓库名] [远程分支]
五 remote常用命令
git remote 输出远程仓库的名字
git remote -v 远程仓库名字和对应的url
git remote show 远程仓库名称 远程仓库详细信息
git remote add 仓库名称 url 在指定url上创建指定名称的仓库
git remote rm 仓库名 删除远程仓库
git remote set-head origin master 指定远程仓库origin的master为主分支
六 branch常用命令
git branch 查看本地分支 --track将本地分支关联远程分支
git branch -a 查看远程分支
git -m branch 分支名 新分支名 重命名分支
git branch 分支名 创建新的本地分支
git branch -d 分支名 删除本地分支 -D强行删除
git checkout 分支名 切换到指定分支 -b参数表示创建一个分支,并切换到新分支
git merge <分支> 将分支合并到当前分支 --no-ff禁用Fast forward模式,默认会启用Fast forward模式,这种模式下,删除分支,会丢掉分支信息
七 其他常用命令
git reset --hard [提交版本号] 恢复指定版本的状态,放弃所有修改,默认为最近一次提交
--soft只是撤销已提交的版本库,不会修改暂存区和工作区
--mixed只是撤销已提交的版本库和暂存区,不会修改工作区
git checkout -- 文件名 将文件恢复为暂存区的内容
git log 查看提交记录 --graph查看分支合并
git log -n 1 -p -n 1查看最后一次提交记录 -p查看提交的详情
git rm --cache 文件名 删除暂存区中的内容
git pull 远程主机名 远程分支名:本地分支名 拉取远程分支并与本地分支合并
git fetch 远程主机名 [分支名] 拉取远程分支,但是不合并
git push 远程仓库名 本地分支:远程分支 将本地分支推送到远程仓库 -u指定默认远程仓库,不需要再指定远程主机名
git push 远程仓库名 :分支名 删除远程分支,冒号不能少
git tag 查看所有标签
git tag 标签名 [提交版本号] 为提交的版本号添加一个别名,容易查看,默认为最后一次提交的版本加tag \
git tag -a v0.1 -m "version 0.1 released" 3628164 将3628164提交版本号打上一个v0.1的标签, -m为tag的说明
git tag -d 标签名 删除标签
git checkout 标签名 切换到指定标签 需要记住最开始的提交版本号,否则用resert --hard 返回不了
git push 远程仓库 标签名 将标签推送到远程
git push --tags 将本地所有tag推送到远程
git stash 将已修改未提交的文件储存起来,使工作区恢复到最后一次提交状态
git stash list 查看存储的内容
git stash pop 恢复到git stash的状态
八 工作区和暂存区
工作区:即代码目录
版本库:.git的隐藏文件 里面有一个暂存区,通过git add的文件就放在暂存区
通过git commit将暂存区的内容放到分支
九 忽略文件
在.gitignore中添加相应的规则,如屏蔽.so文件,添加 *.so 即可
十 服务器git搭建
1 将现有仓库my_project导出为裸仓库
git clone --bare my_project my_project.git
效果相当于cp my_project/.git my_project.git -rf
2 将裸仓库放到服务器上
scp -r my_project.git 主机名@服务器地址:服务器目录
如果出现connect to host 9.123.159.41 port 22:connection refused 应该是ssh未安装
3 连接远程仓库
git remote add gittest url:绝对路径/gittest.git
4 权限管理
gitosis
十一 git修改本地指向的远程地址
1.修改命令
git remote set-url origin [url]
例如:Git remote set-url origin gitlab@gitlab.chumob.com:PHP/hasoffer.git
2.先删后加
git remote rm origin
git remote add origin [url]
3.直接修改config文件
问题1:
git push出现
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using
解决:
使用git branch --track 远程仓库/分支名 将本地分支与远程分支关联
问题2:
ms@ms:~/Data/gittest$ git commit -m"111"
On branch master
Your branch is up-to-date with 'remotes/gittest/master'.
Changes not staged for commit:
modified: abc.c
no changes added to commit
解决:
git commit -am"111" -a表示自动添加文件
或者
git add abc.c
git commit -m"111"