git

 


一:本地操作:


1,配置文件和用户名:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

2, add 文件

git add test1.txt :添加文件test1

git add . :添加所有的文件包括update 和 add 的文件,不包括delete文件
git add -u:将文件的修改、文件的删除,添加到暂存区,不包括新增
git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区

3,查看状态

git status :查看状态

git diff 查看做了哪些修改 (Unix通用的diff格式)

git diff HEAD -- test.txt命令可以查看工作区和版本库里面最新版本的区别


3, git log 或者 git log --pretty=oneline : 查看提交日志
4, git reset --hard HEAD^ 回退到上一个版本,git中head表示当前版本 HEAD~100 表示回第100个版本有三个参数要注意
--soft表示只修改head的指针,不会修改 stage,working 意味这这两个地方的修改会保存不会丢失
--mixed 是soft和hard的折中 会修改head,stage,不会修改working
--hard参数表示 head,stage,working 都会修改意味着会丢失 stage,和working的修改

如果不加参数 git reset HEAD test.txt(想当于把暂存区的修改退回到工作区)
如果回退了后悔了可以用 git reflog 查看提交日志,找到commit_id  然后git reset --hard commit_id

5, git reflog 可以查看提交的日志命令
6,  git status 查看状态

二 分支:管理


7, git checkout branchname 切换到一个分支,git checkout --fileName 表示覆盖工作区的修改,如果stage中有文件的话就是
用stage中的替换,如果stage中没有的话就用head中的替换

命令git checkout -- test.txt意思就是,把test.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是test.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是test.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态


8, 删除文件 git rm fileName 然后git commit 如果删错了的话可以用 上面提到的git checkout --fileName 检出(注意这个
文件恢复,文件一定要加入到版本库,stage或cmmit,如果没有加入版本库的话就不行了)

三:远程操作

1,和远程和远程仓库关联,推送到远程前,先要加key

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容


2, 本地仓库和远程仓库关联,先建立远程仓库,执行命令 
(1)$ git remote add origin git@github.com:michaelliao/learngit.git 和远程仓库关联(后面的是仓库地址,这里的origin是默认名,也可以改成其他名字,push时的origin也要改,git@github.com:michaelliao/learngit.git 是项目地址,)如果出现

fatal: remote origin already exists

可以先输入  git remote rm orgin  然后再执行  git remote add origin git@github.com:michaelliao/learngit.git

(2)如果git remote add origin 出现如下错误的时候

The authenticity of host 'github.com ' can't be established(无法建立主机“github.com”的真实性)

这是由于你的git地址采用了ssh方式,切换为https方式即可,也可能是你的仓库地址不对,可以用命令先查看一下,可以用  git remote -v 查看fetch 和push的地址是否一样,如果不一样 复制远程地址,用如下命令

git remote set-url origin https://github.com/yourname/learngit.git (这个是你的复制的仓库地址)

然后就可以正常push了

 

3,关联后推送到远程 

git push -u origin master 把本地库推送到远程库 (git push 时如果远程库不存在会默认创建)
 (我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
如果没有push -u 而直接pull的话会提示没有和远程的分支关联 需要先执行 git branch --set-upstream debug origin/debug
(debug为远程分支名,本地创建分支后要和远程分支关联,就可以直接使用git pull,git push 简化命令,如果没有关联的话
每次push或者pull的时候需要显示的指定 远程分支 如 git push orign dev)

4,推送指定分支 

$ git push origin master这是推送到master 分支(即使当前分支不是master分支也是把本地的master分支推到远程master,默认要推送的分支和后面的分支名相同
比如当前在dev1 分支 执行命令 git push origin dev2 会把本地的dev2 推送到远程的dev2),如果要从一个分支推送到另外一个分支的话
使用命令 git push orign localBranch:remoteBranch(最后采用合并分支的方法来同步代码)

5,, git remote rm origin 删除关联的远程库,然后可以重新管理 
 

三:从远程分支拉取

1,git fetch 相当于是从远程获取最新到本地,不会自动merge(获取当前分支的)

2,git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支

1,默认的方式 git pull (需要设置默认分支)

2,git pull origin master 从远程master分支拉取 并合并到本地当前分支

 


2, 从远程克隆
1,创建远程库(注意勾选readme.md)2,git clone 远程库地址(克隆下来了可以在这个目录下创建新项目)


三:分支


1,

(1)创建分支,git branch dev1,

(2)切换分支:git checkout dev1

(3)可以合并这两条命令创建切换分支 git checkout -b dev1
(4)合并分支 git merge dev,把dev分支合并到当前分支
(5) git branch -d dev 删除分支(分支如果没有被合并的话会删除失败,可以强制删除 git branch -D dev)
(6) git branch 查看分支
(7)$ git merge --no-ff -m "合并分支" dev 加上no-ff 合并后会保存分支信息
(8)工作去修改后需要切换到另一个分支时可以用 git stash 把当前的工作区保存起来,然后再切换回来时 可以使用
git stash apply来恢复(不删除stash,需要手动删除git stash drop)或者使用git stash pop (恢复后删除stash)
可以用git stash list 查看stash 列表
7, git tag v1.0 添加标签 git tag 查看标签 git tag v0.9 commit_id(z) 可以创建说明标签:git tag -a v0.1 -m "说明文字" 3628164
git show tagName 可以查看说明
git tag -d v0.1 删除标签(标签是创建在本地的,要把标签推送到远程用 git push origin v1.0 或者推送所有标签:git push origin --tags)
要删除远程标签的话要先删除本地标签 git tag -d v0.9 然后删除远程标签git push origin :refs/tags/v0.9

四:远程




五:创建ssk


1, $ ssh-keygen -t rsa -C "youremail@example.com" 可以在用户主目录中看到.ssh目录里面有id_rsa(私钥)和id_rsa.pub两个文件

 

 

参考:https://www.liaoxuefeng.com/wiki/896043488029600/897889638509536

https://blog.csdn.net/qq_43705131/article/details/107989768












 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值