git总结

一 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 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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值