Git常见使用(基础项)

本文详细介绍了在Ubuntu 18.04上安装和使用Git的过程,包括基础配置、仓库管理、提交流程、分支操作及回退等关键操作。此外,还涵盖了生成和应用补丁、克隆远程仓库以及与远程仓库的交互。通过实例演示,帮助读者掌握Git日常开发中的核心技能。
摘要由CSDN通过智能技术生成

平台

base on Ubuntu18.04

git基础

git安装

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev
//安装git
$ apt-get install git
//检查git版本
$ git --version
git version 2.7.4

git用户配置

用户信息

$ git config --global user.name "baiy"
$ git config --global user.email test@baiy.com

查看配置信息

$ git config --list
user.name=baiy
user.email=****

git创建本地仓库

git init  //初始化一个仓库
git init newrepo  //指定目录

find . -name ".git" | xargs rm -Rf //删除文件夹下所有.git

git提交流程

git status . //查看当前目录下,git仓库的状态,显示变更的文件,绿色为add过在仓库暂存区, 红色为没add

git diff file.c //如果file.c有变更,则可以查看file.c变更内容

git add file //提交到暂存区
git add -u   //提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add .    //提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git add -A   //提交所有变化

git commit -m "init version" //提交暂存区到本地仓库

git commit -am " "  //将当前目录下的变化提交到暂存和存到本地仓库

git commit --amend //撤销上一次提交,并将暂存区文件重新提交
git commit -a –amend //可修改提交名,ctrl-x退出

git show xxx//查看提交内容

git查看仓库的状态

git log . //查看当前目录下的提交记录
git log --oneline //查看当前分支git仓库所有提交,一行一行的显示

git reflog //可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

查看git提交记录内容

git show commit_id //查看提交id为commit_id这条提交的修改内容

从暂存区恢复文件

git checkout
git checkout file.c //回退变更file.c到上一次提交

回退git仓库到某一个提交

git reflog //可以查看所有分支的所有操作记录
git reset (--mixed) commit_id   //默认可不写

HEAD回退commit_id这条提交的同时,保留工作目录,并清空暂存区(红)即取消add
1.c工作区 2.c暂存 3.c最后一次添加
1.c工作区 2.c工作 3.c工作
即非commit_id记录的内容全停留在工作区

git reset --soft commit_id 

HEAD回退commit_id这条提交的同时,保留工作目录和暂存区中的内容,并把重置HEAD所带来的新的差异放进暂存区
1.c工作区 2.c暂存 3.c最后一次添加
1.c工作区 2.c暂存 3.c暂存
即非commit_id记录的内容将保存在暂存区

git reset --hard commit_id

将三个分区都还原到commit_id的记录(工作区和暂存区修改的内容将丢失)

撤销某一次的提交

git revert commit_id 

回退commit_id这个提交到上一个版本,并重新生成提交记录

分支操作

git branch //查看分支
-a //包括远程分支
    
git branch dev //新建dev分支
git branch -D dev //删除dev分支

git checkout dev //切换到dev分支,工作区还原到dev分支
git checkout -b dev //新建一个dev分支,并切换到dev分支
git merge dev //合并dev分支到当前分支

生成patch

git format-patch -1 commit_id 
//生成commit_id提交对应的补丁(-n)
git format-patch commit_id 
//生成commit_id提交之后的所有补丁,不包含commit_id这条提交,一个个的
git format-patch commit_id1..commit_2
//生成commit_id1到commit_id2之间的所有提交补丁,不包含commit_id1
git diff [commit sha1 id] [commit sha1 id] > [diff文件名]

应用patch

git apply --check 001-Fix-debug.patch //检查补丁的合法性
git apply 001-Fix-debug.patch   
//合入补丁,修改内容在更新区,并没有提交
git am 001-Fix-debug.patch 
//合入补丁并提交

clone远程服务器

git clone <repo>
git clone <repo> <directory>
//例子
git clone gitProject@192.168.1.xxx:/Project/xxx.git

查看远程仓库地址

git remote -v //查看远程仓库地址信息
git remote add origin xxx@xxx:xxxx.git //配置git远程地址

同步远程分支

git pull            //更新远程仓库分支列表
git pull origin dev //拉取origin对应服务器dev分支到本地,并分本地分支dev目录合并

git fetch origin dev //同步远程服务器git仓库的dev分支到本地仓库origin分支(红色的分支)
git meger origin/dev //合并从服务器同步的dev分支到本地分支(将红色合并本地)

代码推送

git push origin dev 
//推送本地分支修改到origin对应远程服务器git仓库的dev分支

拓展

git仓库被锁

fatal: Unable to create 'D:/go-base/.git/index.lock': File exists.

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
rm .git/index.lock

git取消追踪

git rm -rf
git commit -m ""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值