Git使用笔记

git使用笔记

将本地工程push到远程

方式一:
1.建立本地仓库

git init

2.创建远程仓库:在github或者gitlab创建远程仓库

3.让本地仓库和远程仓库进行关联

git remote add origin git@mycode.skylettestudio.com:xlPay/XLPay.git

4.进行添加和提交操作

 git add .
 git commit -m"添加文件"

5.push到远程

git push -u origin master

由于远程库是空的,第一次推送master分支时,加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,如下:

git push origin master

方式二:

1.创建远程仓库

把远程仓库clone到本地

git clone git@mycode.skylettestudio.com:xlPay/XLPay.git

将本地工程copy到clone的文件夹中

2.进行添加和提交操作

 git add -A
 git commit -m"添加文件"

3.将工程push到远程

 git push origin master

Add操作:

1.添加单个改动文件,如:readme.txt

git add readme.txt

2.添加所有改变的文件,有如下几种区别:

//表示添加所有内容
git add -A
//表示添加新文件和编辑过的文件不包括删除的文件
git add .
//表示添加编辑或者删除的文件,不包括新添加的文件
git add -u

3.添加同时提交内容

git commit -am"添加并提交到仓库"

分支操作:
1.查看分支

  git branch

2.创建分支

  git branch <name>

3.切换分支

git checkout

4.创建+切换分支

git checkout -b <name>

5.合并某分支到当前分支

  git merge <name>

6.删除本地分支

git branch -d <name>

7.查看远程分支列表

  git branch -a

绿色代表当前项目所在的分支,红色就是远程分支列表
8.提交该分支到远程仓库(即:在远程创建dev分支,并提交内容):

git push origin dev

9.从远程获取dev分支内容:

  git pull origin dev

或者通过用命令行,运行 git fetch,可以将远程分支信息获取到本地,
再运行 git checkout -b local-branchname origin/remote_branchname
就可以将远程分支映射到本地命名为local-branchname 的一分支

10.删除远程分支

 git push origin --delete <branchName>

11.重命名本地分支

git branch -m <oldbranch> <newbranch>

12.重命名远程分支

先删除远程分支,然后重命名本地分支,再重新提交一个远程分支

版本回退:
在Git中,用HEAD表示当前版本。上一个版本就是HEAD,上上一个版本就是HEAD。,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。

1.查看提交日志(所有的提交日志,最近到最远)

git log

查看提交的内容(比如更改了哪些类,删除了哪些文件等)
git log -p -1// -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新

2.查看命令历史(即:我们每一个命令)

git reflog

3.通过git log 或者 git reflog可以拿到每个版本的commit_id,然后通过切换版本/回退版本的命令即可:

 git reset --hard commit_id

回退版本操作:

  //git log 拿到commit_id
  git log
  //回到commit_id那个版本
  git reset --hard commit_id

1.已经回退到了之前的版本,又想回到新版本

  //查看所有的命令,然后找到新版本提交的 commit_id
  git reflog
  //去到新版本 
  git reset --hard commit_id

2.让这个文件回到最近一次git commit或git add时的状态

  git checkout -- readme.txt

标签管理:

1.打一个新标签

  //默认标签是打在最新提交的commit上的
  git tag <name>

2.查看所有标签(标签不是按时间顺序列出,而是按字母排序的)

git tag

3.查看某个标签信息

  //标签不是按时间顺序列出,而是按字母排序的
  git show <tagname>

创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v0.1 -m “设置了标签啊” 3628164

删除本地标签
git tag -d v0.1

推送一个本地标签到远程
git push origin

推送全部未推送过的本地标签到远程
git push origin --tags

删除一个远程标签
//先在本地进行删除
git push origin :refs/tags/

tag默认是打在最新的commit上的,如果想给已经commit过的内容添加标签如下:

  1. git reflog //找到历史版本的 commit id = 6224937
  2. git tag v1.0.0 6224937

获取远程tag
git fetch origin tag

解决冲突

合并冲突:
//提交的文件如果出现冲突就会出现这种提示
CONFLICT (content): Merge conflict in readme.txt

Automatic merge failed; fix conflicts and then commit the result.

通过git status 查看冲突文件
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
修改文件,保存,再次提交即可
通过git log查看分支合并的情况

更新本地工程

获取远端库最新信息
git fetch origin

作比较
git diff master origin/master

合并本地仓库代码
git merge origin/master

公共操作

把本地git仓库恢复为普通文件夹

删除这个目录里的隐藏文件夹.git
rm -rf .git/

测试Github和Gitlab是否添加了SSH
ssh -T git@github.com
ssh -T git@gitlab.com

查看未传送到远程代码库的提交描述/说明(commit到了本地仓库,但是没有push到远程仓库的内容的提交说明)
git cherry -v origin thcdev//后面要加push到的远程仓库名

查看远程库信息
git remote -v;

清屏操作
git reset

git log之后退出
按 Q 即可

找到历史提交的commit id
git log --pretty=oneline --abbrev-commit

和远程仓库建立联系

创建SSH Key

在用户主目录(这里在windows下是指 c/user/Administrator/.ssh/id_rsa)下,看看有没有.ssh目录。
如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。

如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"

需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。
由于这个Key也不是用于军事目的,所以也无需设置密码。
(测试的结果:C:\Users\Administrator.ssh 里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。)

登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。点“Add Key”,你就应该看到已经添加的Key:
注意两点:

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

测试SSH key是否添加成功
输入如下命令进行测试
ssh -T git@github.com

如果出现:

ssh_success.png

说明添加成功了。

Git 命令行常用命令

进入当前路径的dev
cd dev

返回上级目录
cd …

返回上次目录
cd

查看当前目录
pwd

列出当前目录内容
ls

新建一个名为dev的目录
mkdir dev

强制删除,不管目录为不为空
rm -rf dev

Vim常用命令

关闭(Exiting)
:w 保存
:wq 保存并关闭 :x
:q 关闭(已保存)
:q! 强制关闭

关闭插入模式
ESC//点击之后就可以执行 vim命令操作

大佬命令集合

git问题收录

Unable to create ‘E:/WorkSpace/xiaoluSDK-android/.git/index.lock’: File exists.
rm -f ./.git/index.lock

搞一波

当操作git的时候,如果进入了很多命令.~ … 等,需要按q退出

菜单

commit 查看变化说明
stash changes 搜索隐藏变化
push to Upstream 提交
fetch from upstream 更新
push branch ‘master‘ 推分支‘master’
pull 拉
remote 远程
remote-push 推
remote-push tages推送标签
remote-configure push to upstream 推送配置到上游
remote-configure fetch from upstream 从上游获取配置
switch to 切换到
advanced 高级
synchronize workspace 同步工作区
merge tool 合并工具
merge 去
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值