git常用命令

初始化git操作(摘自码云)


Git 全局设置:
git config --global user.name "luohanye"
git config --global user.email "indexman@126.com"


创建 git 仓库:
mkdir helloweb
cd helloweb
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://git.oschina.net/indexman/helloweb.git
git push -u origin master

#从远程仓库clone
ssh-keygen -t rsa -C "indexman@126.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/dylan-pc/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/dylan-pc/.ssh/id_rsa.
Your public key has been saved in /c/Users/dylan-pc/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:VvO2k+pzQjROCtAijxjw1ZEBsebKlIy69gH8CV3+G4s indexman@126.com
The key's randomart image is:
+---[RSA 2048]----+
|      .. .       |
|      ..o        |
|      o* .o      |
|. .o.+B +.+o     |
| o.+++.=S= .o    |
| .oo=...o o. o   |
|.  +oo o +  +    |
| o  o . o *...   |
|o ..   E +o+     |
+----[SHA256]-----+

查看已生成的公钥
cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8U3Fr0SyPmNEiJVc1RZ5pEjd9YouT8HypXo28a8I+ueqmcr4CMxiLC5F6uYoST1dqiAtdcr8Xbd5AL30gCh+V4uJBXh9xYyOB8/3M0iUuMknLHBff5OF2QmUUK5s/z+MuTbtbxZxVsa6IHqZ3k5F7mL1C/1Jn88x5gDVWXRmaqYx8mSaocTu2Ar2uVzRa/aH9WB2+YrkRmVgmZ01DbNpPWD1EGX+XiJrw5UyqiXTpPntDs/EBq2glSiSxXqe2dw+GB4bATIqFm86PQx++EaajSuXfG1SkohTmvwzZTLEauukC2LqCUXV/U5pVY3tF2fPToFFsDOny4P+i8BeOSVI/ indexman@126.com

添加到码云


已有项目上传
cd existing_git_repo
git init
git remote add origin https://git.oschina.net/indexman/helloweb.git
#拿下readme.md文件
git pull --rebase origin master
git push -u origin master


#查看远程仓库信息
git remote
【origin】
git remote -v

origin  https://git.oschina.net/indexman/example.git (fetch)
origin  https://git.oschina.net/indexman/example.git (push)

git remote show origin
【* remote origin
  Fetch URL: https://git.oschina.net/indexman/example.git
  Push  URL: https://git.oschina.net/indexman/example.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)


#查看状态
git status
git status -s

#查看更改
git diff
git log
【commit 9af9b4f9341d78b4b65e9f10f57a76e4e10fd855
Author: luohanye <indexman@126.com>
Date:   Wed Aug 30 11:27:43 2017 +0800

    更新 HelloWorld.java

commit 257857a248a3dafee4ca9912a1bc2bd88d0c0ac7
Author: dylan-pc <xusucheng@beyondbit.com>
Date:   Wed Aug 30 11:07:39 2017 +0800

    add HelloWorld clss

git log -p -2
git log -stat
git log --stat
git log --pretty=format:"%h %s" --graph
git diff
git --help
git --diff
git diff
git diff --cached

#克隆项目
git clone https://git.oschina.net/indexman/example.git
cd example/
dir
cat README.md
exit

#添加到暂存区
git add HelloWorld.java
git status -s

#提交到暂存区
git commit HelloWorld.java
$ git commit -m "add HelloWorld clss"
[master 257857a] add HelloWorld clss
 1 file changed, 6 insertions(+), 1 deletion(-)

#push到远程仓库
git push

#获取仓库最新更改
git pull
【remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://git.oschina.net/indexman/example
   257857a..9af9b4f  master     -> origin/master
Updating 257857a..9af9b4f
Fast-forward
 HelloWorld.java | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

#暂存当前正在修改的内容
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
用'git stash apply stash@{1}将你指定版本号为stash@{1}的工作取出来


#移动文件后push
git reset HEAD HelloWorld.java
git commit -m "move HelloWorld.java to src/"
git push

#重命名文件
git mv HelloWorld.java HelloWorld2.java
git commit -m "xxx"

#删除文件
git rm HelloWorld2.java
git commit -a -m "remove HelloWorld2.java"

#修正错误
git checkout Developer.java #把提交到暂存区的修改撤回


#HEAD指针
如果发现错误的将不想暂存的文件被git add进入索引之后,想回退取消,则可以使用命令
git reset HEAD <file>

#处理冲突
$ git pull
【remote: Counting objects: 4, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
From https://git.oschina.net/indexman/example
   41fc76e..9f1464b  master     -> origin/master
Auto-merging src/Developer.java
CONFLICT (content): Merge conflict in src/Developer.java
Automatic merge failed; fix conflicts and then commit the result.

#git fetch和git pull的区别
git fetch:相当于是从远程获取最新版本到本地,不会自动合并。
$ git fetch origin master
$ git log -p master..origin/master
$ git merge origin/master
Shell
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
$ git fetch origin master:tmp
$ git diff tmp 
$ git merge tmp
Shell
2. git pull:相当于是从远程获取最新版本并merge到本地 
git pull origin master
Shell
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。

 

 

 

<think>我们被要求生成一个关于Git常用命令的汇总列表。根据用户的要求,我们需要提供结构清晰的回答,并尽量保证真实可靠。同时,我们参考了站内引用中提供的Git命令信息。根据引用内容,我们可以整理出以下常用命令:1.基本操作(初始化、添加、提交等)2.分支管理3.远程仓库操作4.标签管理5.历史查看与撤销6.其他实用命令(如删除大文件、清理仓库等)我们将按照这些类别来组织命令。注意:由于引用中提供了一些特定问题的解决方案(如删除大文件),我们也会将其作为实用命令的一部分。另外,注意用户要求使用中文回答,并且行内数学表达式使用$...$格式(但本问题不涉及数学表达式,所以忽略),独立公式使用$$...$$格式(同样不涉及)。同时,在回答末尾生成相关问题。我们开始整理Git常用命令汇总:</think>### Git常用命令汇总 以下是Git常用命令分类整理,帮助您高效管理代码版本: #### 1. 仓库初始化与基础操作 ```bash # 初始化新仓库 $ git init # 克隆远程仓库 $ git clone <远程仓库URL> # 查看当前状态 $ git status # 添加文件到暂存区 $ git add <文件名> # 添加单个文件 $ git add . # 添加所有修改 # 提交更改 $ git commit -m "提交说明" ``` #### 2. 分支管理 ```bash # 创建分支 $ git branch <新分支名> # 切换分支 $ git checkout <分支名> $ git switch <分支名> # Git 2.23+推荐方式 # 创建并切换分支 $ git checkout -b <新分支名> $ git switch -c <新分支名> # 合并分支 $ git merge <要合并的分支名> # 删除分支 $ git branch -d <分支名> # 安全删除 $ git branch -D <分支名> # 强制删除未合并分支 ``` #### 3. 远程仓库操作 ```bash # 添加远程仓库 $ git remote add origin <远程仓库URL> # 查看远程仓库 $ git remote -v # 推送到远程仓库 $ git push -u origin <分支名> # 首次推送 $ git push # 后续推送 # 拉取远程更新 $ git pull origin <分支名> $ git pull --rebase origin <分支名> # 变基式拉取 # 删除远程连接 $ git remote rm origin ``` #### 4. 版本回退与撤销 ```bash # 查看提交历史 $ git log $ git log --oneline # 简洁版日志 # 撤销工作区修改 $ git checkout -- <文件名> # 撤销暂存区文件 $ git reset HEAD <文件名> # 版本回退 $ git reset --hard <commit_id> # 彻底回退 $ git reset --soft <commit_id> # 保留修改 # 恢复删除的文件 $ git restore <文件名> # Git 2.23+ ``` #### 5. 标签管理 ```bash # 查看标签 $ git tag # 创建标签 $ git tag <标签名> # 轻量标签 $ git tag -a v1.0 -m "版本说明" # 附注标签 # 推送标签 $ git push origin <标签名> # 删除标签 $ git tag -d <标签名> # 本地删除 $ git push origin :refs/tags/<标签名> # 远程删除 ``` #### 6. 高级维护 ```bash # 清理历史大文件 $ git filter-branch --force --index-filter \ 'git rm -rf --cached --ignore-unmatch <文件名>' \ --prune-empty --tag-name-filter cat -- --all # 回收存储空间 $ git reflog expire --expire=now --all $ git gc --prune=now # 查看仓库大小 $ git count-objects -vH ``` #### 7. 配置相关 ```bash # 设置用户名/邮箱 $ git config --global user.name "用户名" $ git config --global user.email "邮箱" # 查看配置 $ git config --list # 设置默认编辑器 $ git config --global core.editor vim ``` > **最佳实践提示**: > 1. 频繁提交小变更,保持提交记录清晰 > 2. 使用`.gitignore`文件排除无需版本控制的文件 > 3. 重要分支(如main/prod)设置保护规则 > 4. 推送前先执行`git pull --rebase`避免合并提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值