git clone git status git log git add/commit git diff git push git cherry-pick git stash等总结

本文总结了Git在Linux下的常用命令,包括clone、status、log、add/commit等基本操作,以及diff、push、pull等高级功能,还介绍了如何处理撤销操作、解决冲突等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    2017年开始使用git,这里总结下用到的cmd,会持续跟新。

    GIT可以在windows和linux两种操作系统中运行,这里记录的是linux下的操作方式。

autor   --表示提交者

 

编号

功能说明

command

1            

clone                 

$ git clone <版本库的网址> <本地目录名>

 

git clone ssh://autor@192.168.100.51:29419/kunlun.git

 

2

status

git status

3

log

git log  (显示log)

 

git log -p -2   (p,表示展开更改,2表示最近的两个commit)

 

4

add/commit

git add  xxx     (将xxx从工作区增加到缓存区)

 

git commit     (将缓存区的改动,提交到分支上去,变成一个commit,生成change_id)

 

git commit --amend  (这次提交,和上次提交为一个提交,共用一个change id)

 

git commit --amend --author 'autor<autor@iotelic.com>'  (这次提交,和上次提交为一个提交,共用一个change id,并且更改提交的作者)

 

5

diff

git diff   (显示不同的部分)

6

push

git push <远程主机名> <本地分支名>:<远程分支名>

 

git push ssh://autor@192.168.100.51:29419/kunlun.git HEAD:refs/for/master

 

git push --no-thin ssh://autor@192.168.100.51:29419/kunlun.git HEAD:refs/for/master

 

7

撤销git add的文件

git reset HEAD <xxx>  (将文件xxx,从缓存区中撤回到工作区中)

8

撤销git commit

git reset  --soft  <xxx>               (xxx表示commit的id,表示将改动commit的改动撤回到工作区中)

 

git reset --hard <xxx>               (xxx表示commit的id,表示直接回退到该xxx版本)

 

9

pull

$ git pull <远程主机名> <远程分支名>:<本地分支名>

 

git pull ssh://autor@192.168.100.51:29419/kunlun.git master:master   (从远程master分支上pull到本地master分支上)

 

$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>

 

10

撤销未提交更改

git checkout -- <xxx>

11

分支

git branch -a   (-a表示查看所有分支,包括远程分支)

 

git branch -D <branch name>    (删除分支)

 

git branch <branch name> <remote branch>      (创建分支)

 

git checkout -b <branch name>   (切换到分支)

 

12

Cherry pick

1.git branch 查看branch

2.git checkout <branch1>  切换到branch1

3.git log  查看准备cherry pick的commit,并几下这个commit1

4.git checkout <branch2>  切换到branch2

5.git cherry-pick <commit1>

如果顺利,这样就将 branch1的 commit cherry pick到branch2上去了

如果有conflict, 解决冲突的方式和rebase的相反。

 

Rebase      --> theirs,   记录local

 

Cherry pick --> mains   记录remote

13

Git diff

git diff 是已修改的workspace的修改与库上的code的区别

git diff --cached    查看已经add的修改与库上的区别

14

撤销还没add的更改                               

git checkout -- filename   撤销还没提交的更改

 

15

修改用户名及邮箱

  git 修改当前的project的用户名的命令为:git config user.name 你的目标用户名;

  git 修改当前的project提交邮箱的命令为:git config user.email 你的目标邮箱名;

16

stash

git stash

git stash pop

 

git stash save "work in progress for foo feature"

当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,

git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

 

git stash          # save uncommitted changes
# pull, edit, etc.
git stash list     # list stashed changes in this git
git show stash@{0} # see the last stash
git stash pop      # apply last stash and remove it from the list

git stash --help   # for more info

17

rebase 丢失commit的情况

当rebase commit丢失的时候,找回丢失commit的方法:

1. git reflog

2. git checkout -b my_recovery  [commit]  回到丢失前的commit状态

3. git reset --soft 之前的一个commit

4. git stash     将改动存到stash里面

5. git checkout master

6. git stash pop

这样之前的改动就回到了master下的工作区内了

 

18

查看某一个文件的log

git log --pretty=oneline 文件名

 

19

 

生成patch

git diff > xxx

 

20查看clone地址

git remote -v

 

21查看某个commit的修改

git show commit_id

eg:git show ffc768c21c2e10b3e631f5e22a09872eef718282

22patch

假如现在操作的位置是第一层目录

patch -p 1 < x.patch

patch -Rp 1< x.patch

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值