关于git的一些用法

以前用过一段时间的svn,今年这个项目用的是git,这篇文件记录一些自己用过的命令和遇到的情况,仅作参考。

 目前关于git,用到最多的就是下面这几条命令:

git pull
git commit, git commit -asm “  log  ”
git push 

嗯,还有个几个:

git log
git diff
git status

哈哈哈,真够少的,今后再碰到什么再加吧,现在先占个位置。

10月21日补: 

git撤销add:
例:git add t1.cpp t2.cpp 

之后你想撤销对t1.cpp的add,那么只需要 

 git reset HEAD t1.cpp

就好了。 

当然,前提是你还没有commit。 

 

这两天改代码,改完之后发现不合适,干脆删掉文件或者重命名做参考,
于是直接git checkout <filename>重新down一个下来,简单粗暴直接,哈哈。

 

10月27日补:

git branch               查看本地分支
git branch -a           查看远程分支 

11月4日补:

如何撤销已经commit到本地,但是尚未push到server的更改:

git reset ${versionID}


指定好要恢复回去的版本号即可,这个时候已经更改过的内容还是在本地,但是版本已经回到了指定的版本。

如何对比两个版本有哪些文件被改变而不显示具体细节:

git diff --stat ${versionID_01} ${versionID_02}

注意stat之前是两个横杠“ - ”

11月6日补:

有时候习惯用以下命令提交代码:
 git     commit    -asm     “the message you want input”
后来发现这样会把不想提交的东西一起提交上去,
今天才发现,问题出在里面这个 a 这个参数上,这里等同于 git   -add (其实我还是不太确定这个a 是add 还是all。。。。。哈哈)

11月30日补:

有时候在merge或者checkout的时候会遇见如下的错误:
 
checkout error:

error: Your local changes to the following files would be overwritten by checkout: xxxxxxx

    xxxxxxx
Please, commit your changes or stash them before you can switch branches.
Aborting
merge error:
error: Your local changes to the following files would be overwritten by merge:
xxxxxxxx
Please, commit your changes or stash them before you can merge.
Aborting

 其实人家git以及给你指明了解决方案,----> git stash

git stash 可以将为提价的修改保存在当前分支的当前版本下,准确来说是暂存在栈里,这是条简化版的命令;
git stash save “ message log” 上条命令的精确版,可以写log;
git stash list 可以列举最近几次stash操作的信息,分支、版本号、log等;
git stash show stash@{0} 列举索引为0(即最近一次)的stash操作具体信息,比如修改了那些文件,修改了多少,具体内容看不到;
git show stash@{0} 则是列举索引为0的stash操作的详细内容,个人猜测,实际上内部调用了git diff 的命令,与git diff效果一样;
git stash pop 恢复最近一次stash操作即本命令前索引为0的stash操作,并在stash栈中删除;
git stash pop stash@{0} 恢复指定索引为0的stash操作,并在stash栈中删除;
git stash drop 删除stash栈中内容,默认为最近一次stash操作;
git stash drop stash@{0} 从stash栈中删除指定索引为0的stash操作;
git stash clear 清除stash栈中所有内容;

其实stash的操作还能更精细,但是我没有研究过,等今后用到在写吧,这个是这两天碰到的情况。

12月1日补:

如果已经merge了却想取消怎么办,老办法:
git reset --hard ${VersionGuid}
恩,就这么回事儿。

2017年9月14日补:

如何push指定的某个commit到指定branch:
git push origin [commit-id]:<branch-name>

 

2020年10月25日补:

暂存区对比:

git diff --staged

git diff --cached

git cherry-pick多个commit:

git cherry-pick commit_1^..commit_n   commit_1到commit_9,包含commit_1,commit_9

git cherry-pick commit_1..commit_9     commit_1到commit_9,包含commit_9, 不含commit_1

push 到gerrit,指定reviewer:

%r后面跟的是reviewer邮箱

git push origin HEAD:refs/for/[branch_name]%r=xxxx@xxx.com

git log针对指定文件查看多个commit的变化:

-n  指定最近几次commit,不加-n就是所有commit上关于该文件的变化。

git log -p -n [file_name]

 

 

 

 

 

<think>我们正在处理用户关于Git常用命令和使用方法的请求。根据提供的引用内容,我们可以总结出以下常用命令: 1. git config:配置用户信息 2. git add:将文件添加到暂存区 3. git commit:提交更改 4. git rm:删除文件(也可以从暂存区移除) 5. git clone:克隆远程仓库 6. git push:推送到远程分支 7. git pull:从远程分支拉取 8. git branch:分支操作(包括设置追踪) 此外,引用中还提到了.gitignore文件的使用。 我们将按照逻辑顺序介绍这些命令,并给出一些基本用法示例。同时,我们会根据要求生成相关问题。 注意:引用内容中有些命令的说明比较详细,我们将适当整合。 开始回答:</think>### Git常用命令与使用方法 以下是Git的核心操作命令及使用说明: #### 1. **基础配置** - **设置用户信息**(首次使用必需) ```bash git config --global user.name "你的用户名" git config --global user.email "你的邮箱" ``` 此配置将保存到`~/.gitconfig`文件,用于标识代码提交者[^1][^2]。 #### 2. **仓库操作** - **克隆远程仓库** ```bash git clone https://github.com/用户名/仓库名.git ``` 完整下载远程仓库到本地[^4]。 #### 3. **文件跟踪** - **添加文件到暂存区** ```bash git add . # 添加所有修改 git add 文件名 # 添加特定文件 ``` 新文件需先添加才能被跟踪[^1]。 - **忽略文件** 创建`.gitignore`文件并列出需忽略的文件名(如`file.txt`),然后提交: ```bash git add .gitignore git commit -m "添加忽略规则" ``` 永久停止跟踪已提交文件: ```bash git rm --cached file.txt # 保留本地文件 ``` #### 4. **提交变更** - **提交到本地仓库** ```bash git commit -m "提交描述" ``` 需先执行`git add`将变更放入暂存区。 #### 5. **分支管理** - **分支操作** ```bash git branch # 查看分支 git branch 新分支名 # 创建分支 git checkout 分支名 # 切换分支 git branch -d 分支名 # 删除分支 ``` - **关联远程分支** ```bash git push origin 本地分支 # 推送分支 git branch --set-upstream-to=origin/远程分支 本地分支 # 设置追踪 ``` #### 6. **远程同步** - **推送与拉取** ```bash git push origin 分支名 # 推送本地提交 git pull origin 分支名 # 拉取远程更新 ``` 需先建立分支追踪关系[^4]。 #### 7. **撤销操作** - **删除文件** ```bash git rm 文件名 # 删除文件并提交 git rm -r 目录名 # 递归删除目录 ``` 删除后需执行`git commit`[^3]。 --- ### 典型工作流示例 ```bash # 初始化项目 git clone https://github.com/user/project.git cd project # 修改代码 echo "新内容" >> README.md # 提交变更 git add README.md git commit -m "更新文档" git push origin main # 创建新功能分支 git branch feature git checkout feature # ...开发后推送... git push -u origin feature ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值