git常用命令

git常用命令

1. 初始化git本地库
git init
2. 设置全局的git用户名和邮箱
git config --global user.name 'yourname'
git config --global user.email 'youremail@example.com'

若只针对一个项目Repository, 则不需要参数--global

3. ssh-keygen命令生成ssh密钥
cd "c:/Users/用户名/"  # 对于windows系统用户, 进入到用户根目录下
cd ~                # 对于linux系统用户, 进入到用户根目录下
mkdir .ssh          # 创建目录.ssh
cd .ssh             # 进入.ssh目录下
ssh-keygen          # 默认直接回车情况下, 创建私钥id_rsa和公钥id_rsa.pub两个文件, 且私钥密码为空
ssh-keygen -t rsa   # -t表示指明生成ras的私钥和公钥
ssh-keygen -t rsa -C "我的SSH密钥"  # -C表示添加密钥的注释
4. 检测ssh key通过

命令ssh -T git@xxx.com, 其中, xxx.com是代码托管网站的网站

ssh -T git@gitlab.com
Welcome to GitLab, @zhuxiongxian!
5. 查看配置信息
git config --list   # 查看本地仓库的git配置信息
git config -l       # 同上, --list参数可简写为-l
git config --global -l # 查看全局的git配置信息, --global表示全局
6. git之https或http方式设置记住用户名和密码

https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速

全局设置记住密码(默认15分钟):

git config --global credential.helper cache

全局设置长期存储密码:

git config --global credential.helper store

本地设置长期存储密码, 在项目根目录下执行以下命令:

git config credential.helper store

或者在本地的工程文件夹的.git下打开config文件, 在文件project/.git/config添加:

[credential]
    helper = store

再输入一次用户名密码后就可以保存住了。

7. 更新代码/拉取代码
git pull
git pull origin <remote_branch>
git pull origin <remote_branch>:<local_branch>
8. 查看有内容变更的文件
git status
9. 提交代码/上传代码
git add .
git commit -m "推送的消息"
git push origin master  # 推送本地代码到远程版本库上
git push -u origin master   # 第一次推送本地代码到远程版本库上
git push origin master -f   # 强行推送本地代码到远程版本库上, -f表示force, 强行或强制的意思
10. 合并冲突
git add .
git commit -m "update"
git pull

# 如果自动全并成功, 则直接push; 
git push origin master
# 如果自动合并失败, 在手动解决冲突后, 还要add--commit--push
git add .
git commit -m "update"
git push origin master
11. 手动解决冲突并提交代码
git add .
git commit -m "update"
git pull

此时报错, 英文提示合并失败, 并告诉你冲突的文件是哪些, 这时需要你手动解决冲突, 找到英文提示合并冲突的文件, 找到以下行:

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

p.s.

  • <<<<<<< HEAD======= 表示本地版本库的冲突内容
  • =======>>>>>>> feature1 表示远程版本库的冲突内容

手动解决完冲突后, 再执行提交代码操作:

git add .
git commit -m "update"
git push origin master
12. git检查本地的代码修改情况
git diff # 可以查看当前没有add 的内容修改(不在缓冲区的文件变化)
git diff --cached # 查看已经add但没有commit 的改动(在缓冲区的文件变化)
git diff HEAD # 是上面两条命令的合并
13. Git pull 强行覆盖本地文件
git fetch --all
git reset --hard origin/master
git pull
14. git tag 标签(版本)的操作
  • 创建标签: git tag 标签名
  • 显示所有标签: git tag
  • 共享所有标签到远程库: git push --tags # p.s. 如果有人克隆或者在线同步你的git仓库的话, 标签也会一并同步了
  • 删除本地标签: git tag -d 标签名
  • 删除远程标签: git push origin :refs/tags/标签名
  • 检出标签: git checkout 标签名
  • 查看相应标签的版本信息, 并连同显示标签的提交对象: git show 标签名
  • 推送标签: git push origin 标签名
  • 查看提交的历史日志: git log

示例:

git tag             # 显示所有的标签
git tag v0.1.0      # 本地创建新的标签(版本)
git push --tags     # 将本地的所有版本(标签)推送到远程库上(即共享标签)
git push origin v0.1.0 # 只推送标签v0.1.0到远程库上
15. git branch 分支的操作
git branch            # 显示所有分支
git checkout 分支名    # 检出分支/切换到分支
16. 查看修改了哪些文件
git status
17. 查看修改了哪些文件及内容
git diff
18. 删除源
git remote rm origin
19. 添加源

若源https://github.com/xiongxianzhu/qingmi.git, 示例如下:

git remote add origin https://github.com/xiongxianzhu/qingmi.git
20. 创建并切换分支

创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。
然后,我们就可以在dev分支上正常提交, 示例:

$ git add .
$ git commit -m 'update'
$ git push --set-upstream origin dev
Counting objects: 4, done.
Delta compression using up to 6 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 1.27 KiB | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To git@gitlab.com:quwei/docs.git
* [new branch]      dev -> dev
Branch dev set up to track remote branch dev from origin.
21. 合并分支

dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch 'master'

现在,我们把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支

22. 删除分支

若合并完成后,不需要dev分支, 就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was b17d20e).

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

上面是删除本地分支, 若删除远程分支, 如下:

git push origin --delete dev

就可以把分支dev从远程库中删除了。

23. 分支小结

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除本地分支:git branch -d <name>

删除远程分支:git push origin --delete <name>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值