git入门日常

一、git的两种连接方式

1,http连接

http://username:password@githost.git

2,ssh连接

现在在本地生成ssh-key,执行

ssh-keygen -t rsa -C 'your name'

生成id_rsa和id_rsa.pub

将id_rsa.pub内容添加到githost的管理平台的ssh keys

则可以ssh访问

git@githost.git

相对http连接,ssh连接比较安全

二、git日常命令

1、克隆

git clone http://username:password@githost.git

git clone git@githost.git

2、创建分支

git branch branchname 创建分支

git checkout -b branchname 创建分支并切换至新分支

3、切换分支

git checkout branchname

强制切换分支

git checkout branchname --force

4、将本地当前分支推到远程(创建远程分支)

git push origin branchname

5、下拉远程分支

git checkout -b branchname origin/branchname 

由于gitv2将push.default默认为simple,故而本地分支名和远程分支名要一致

避免git push报错

6、删除本地分支

git branch -d branchname

强制删除本地分支

git branch -D branchname

7、设置git用户和邮箱

git config --global user.name 'xxx'

git config --global user.email 'yyy'

8、设置远程库的url(比如从http连接改为git连接)

git remote set-url origin xxx

9、本地分支关联远程分支(关联后直接使用git pull和git push即可完成下拉和上传)

git branch --set-upstream-to=origin/branchname

10、查看本地配置

git config --local --list

11、查看分支

git branch 查看本地分支列表

git branch -r 查看远程分支列表

git branch -a 所有分支列表(本地和远程)

12、从远程获取最新版本到本地,不做merge

git fetch (通常用于远程增加了分支,git branch -r却看不见的更新分支列表)

git fetch -p (删除掉没有与远程分支对应的本地分支)

13、删除远程分支

git push origin --delete branchname

git push origin :branchname

14、暂存

git stash 临时保存修改

git stash list 查看临时保存文件列表

git stash pop 释放出之前临时保存的修改

使用场景:

在B分支开发,需要切到A分支处理问题,但B分支代码未开发完,此时需要暂存B分支代码

git stash

查看暂存文件列表

git stash list

切换到A分支处理问题

git checkout A

问题处理完切换到B分支继续开发

git checkout B

释放出之前的修改

git stash pop

15、版本回退

git reset --hard head 会退到最高版本(未提交时)

git reset --hard 版本号 回退至指定版本

17、查看日志

git log filename 查看具体文件提交记录

git log -2 查看分支最近的两次提交记录

git log -2 filename 查看具体文件最近两次提交记录

git log -p filename 查看文件具体的修改内容

git log -p -2 filename 查看具体文件最近两次修改内容

18、追责

git blame filename 查看文件的每一行修改

19、合并

git merge A 将A分支合并至当前所在分支

git rebase A 将A分支合并至当前所在分支

merge会保留分支提交记录

rebase不会保留分支提交记录

如果有冲突

merge会继续执行合并,并将所有的冲突展示出来

rebase遇到冲突会停下来,一次只会展示一个冲突,

手动修改冲突后,执行提交操作

个人偏好使用merge

20、忽略

有些重要文件或者日志文件等不想上传,可以编辑.gitignore

例如忽略.idea文件下所有的文件

在.gitignore中添加

.idea/*

如果该文件已经push,例如config.php,则依次执行

git rm --cached config.php//从版本库中删除,在工作目录中保留

在.gitignore添加

config.php

git commit

git push

上述操作完成后,其他开发通过pull,也会忽略config.php

如果需要忽略的文件夹

git rm -r --cached directory

如果只想自己这里把config.php的改动不上传(其他人依旧可以修改上传)

git update-index --assume-unchanged config.php

这个文件修改后,git status不会有变化

21,cherry-pick

场景:A分支提交了多个版本,B分支并不需要A分支最新的代码,而是A分支多次提交的某一个版本

此时,在A分支找到需要使用的版本的hash值,在B分支执行

git cherry-pick A分支需要使用的版本hash

如果遇到冲突,可手动处理冲突

22,reset

场景:git add . & git commit 之后,没有git push,想撤销本地的commit

git log 找到上一次的commit id--->last_commit_id

仅撤销本地commit 保留修改内容

git reset last_commit_id

撤销本地commit 且删除修改内容

git reste --hard last_commit_id

23,切换源

【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。

24,分支重命名

重命名本地分支

当前在要修改的分支上:    git branch -m new_branch_name

当前不在要修改的分支上: git branch -m old_branch_name new_branch_name

修改远程分支

1,重命名本地分支: git branch -m new_branch_name

2,删除远程分支: git push --delete origin old_branch_name

3,上传新命名的本地分支: git push origin new_branch_name

4,关联本地分支和远程分支: git branch --set-upstream-to origin/new_branch_name

25,修改commit注释

1,修改最后一次注释

git commit --amend

进入编辑界面(注释在第一行),输入i进入修改模式,修改后Esc退出,输入:wq保存

2,修改之前的某次注释

①git rebase -i HEAD~2

最后的数字2指的是导出第几次,比如2就会显示倒数的两次注释(最上面两行)

②找到想修改的那条注释,把注释前面的pick换成edit。保存退出。

③git commit --amend,修改注释并保存。

④git rebase --continue

3,修改之前的某几次注释

①同上

②将多个想修改的commit注释前面的pick换成edit

③依次修改你的注释(顺序是从旧到新),Terminal基本都会提示你接下来的操作,没修改一个注释都要重复上面的③和④,知道修改完选择的所有注释。

4,如果将代码push到远程仓库

①把最新的版本从远程仓库先pull下来,修改方法都如上,修改完成后,强制push到远程仓库

git push --force origin your-branch

注:很重要的一点事,你最好保证在你强制push之前没有人提交代码,如果在你push之前有人提交了新的代码到远程仓库,然后你有强制push,name会被你的强制更新覆盖!!!

26,git merge 冲突解决(还原到之前的版本)

git merge --abort

三、总结

准备工作

1、克隆到本地

git clone 远程地址

2、设置全局用户及邮箱

git config --global user.name 'xxx'

git config --global user.email 'yyy'

3、下拉分支代码

git checkout -b localnranchname origin/remotebranchname

4、设置本地当前分支与远程分支关联

git branch --set-upstream-to=origin/remotebranchname

git一般工作流程

1、git add .

保存本地修改

2,git commit -m 'xxxx'

提交到本地并记录

3,git pull

下拉远程修改

4,git push 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值