git 代码版本管理工具add、commit、pull、push
2018-04-10 本文已影响8人
爱音乐的二狗子
![](https://img.haomeiwen.com/i4086604/e1a8e17f15f1aa30.png)
接触git版本管理工具有一段时间了,工作中使用到git,特此小记git代码版本管理工具add、commit、pull、push、clone等命令的基本使用。
常用git命令:
git add filename 将工作区文件添加到缓
git commit -m "文件提交描述"
git pull 从远程抓取分支
git push 将版本库推送到远程
git log -n 查看最近的n条提交日志
git log --pretty=oneline --abbrev-commit 格式化日志记录输出
git tag 查看所有标签
git tag v1.0 给某分支创建标签(最新的一次提交)
git tag v1.1 commit_id 给指定的某次提交创建标签
git tag -a v1.2 -m "标签说明" commit_id 创建带有说明的标签
git tag -d <tagname> 可以删除一个本地标签
git push origin <tagname> 可以推送一个本地标签
git push origin --tags 可以推送全部未推送过的本地标签
git push origin :refs/tags/<tagname> 可以删除一个远程标签
git show <tagname> 查看标签信息
git reset <path/filename> 撤销某文件的"add"操作
git merge <name> 合并某分支到当前分支
git stash 将当前工作区的修改“贮存”起来,方便去做其他的事,比如临时要去修改某个与当 前工作区相关的bug
git stash list 查看stash内容
git stash pop 从stash中恢复修改,并删除stash内容
===谨慎使用git reset --hard xxxxxx 命令,这对未进行过add,也没有进行过commit操作的文件是毁灭性的====
git reset --hard HEAD^ 回退到上一版本
git reset --hard HEAD^^ 回退到上上次版本(也可以写成HEAD~2)
git reset --hard commit_id 回退到指定版本(commit_id可用git log 查看)
===谨慎使用git reset --hard xxxxxx 命令,这对未进行过add,也没有进行过commit操作的文件是毁灭性的====
git reflog 查看历史命令
git status 显示工作区状态
git checkout -- file 撤销工作区文件的修改(如果没有 -- 则是"切换分支命令")
分两种情况:
一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git rm file 从版本库中删除文件
创建远程git 服务器:
1.安装git
sudo apt-get install git (Ubuntu) 或 sudo yum install git (CentOS)
2. 创建git 用户,用来管理git服务
adduser git
3.创建登录证书,把所有用户的公钥导入到git用户的.ssh/authorized_keys文件里。
4.初始化git仓库(裸库)
git init --bare practice.git
然后修改practice.git 的owner
chown -R git:git practice.git
5. 禁用shell登录
修改/etc/passwd文件,将git用的信息改为 git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
克隆远程仓库:
1.在本地git命令窗口中输入如下命令生成公钥和密钥:
ssh-keygen -t rsa -C "youremail@example.com"
2.将生成的公钥内容复制到远程仓库git用户的.ssh的authorized_keys文件中
3.关联远程仓库:git clone git@server-name:path/repo-name.git
git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name 建立本地分支与远程分支的关联
4.向远程仓库推送内容:git push (-u) origin master (首次推送加‘-u’)
5.查看远程仓库: git remote -v git branch -av
获取特定的远程分支到本地:
1 .clone远程仓库:git clone git@server-name:path/repo-name.git
2.进入到git 目录,查看远程分支信息: git branch -av git remote -v
3. 在本地创建与远程分支对应的分支:git checkout -b branch-name origin/branch-name
4. 然后查看本地分支的变化,执行git pull等命令。
分支管理:
git branch <name> 创建本地分支
git checkout <name> 切换分支
git checkout -b <name> 创建并切换本地分支(没有与远程分支对应上)
git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支(前提是远程分支已存在)
git push origin local_branch:origin_branch 创建远程分支,并把本地分支内容推送到远程分支
git branch --set-upstream branch-name origin/branch-name 建立本地分支与远程分支的关联
git branch -d <name> 删除本地分支
git push origin :branch_name 删除远程分支
git branch 查看当前分支
git branch -a 查看所有分支(本地分支和远程分支)
git branch -D <name> 强行删除分支
git 原理参考:http://www.itwendao.com/article/detail/370021.html
git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000