git常用使用命令个人总结

git pull 用于从远程获取代码并合并本地的版本,其实就是 git fetch 和 git merge FETCH_HEAD 的简写

git stash 所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录

git stash list 查看当前stash中的内容

git stash pop 将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。该命令将堆栈中最近保存的内容删除(栈是先进后出)

git branch -r 查看远程所有分支
git branch -a 查看本地和远程所有分支

git remote -v 列出存在的远程仓库

添加远程仓库到本机
git remote add pd git://githup.com/paulbooner/ticgit.git

origin git://github.com/schacont/ticgit.git
pd git://github.com/paulboone/ticgit.git  可以用字符串pd指代对应仓库地址;
可以抓取所有Paul有的,本地仓库没有的信息,可以运行
git fetch pd

remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit

显示远程信息
git remote show origin

git branch -vv 
查看本地分支和远程分子的映射关系

建立分支的映射
将当前分支映射到远程的指定分子,注意切换到当前分支
git branch -u origin/远程分支

git cherry-pick <commitHash>

上面命令就会将指定的提交commitHash,应用于当前分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。
举例来说,代码仓库有master和feature两个分支。

    a - b - c - d   Master
         \
           e - f - g Feature
现在将提交f应用到master分支。

上面代码表示将feature分支的最近一次提交,转移到当前分支。

# 切换到 master 分支
$ git checkout master

# Cherry pick 操作
$ git cherry-pick f
上面的操作完成以后,代码库就变成了下面的样子。

    a - b - c - d - f   Master
         \
           e - f - g Feature
从上面可以看到,master分支的末尾增加了一个提交f。

git cherry-pick命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交。

本地master分支推送到origin主机的master分支

git push origin master

想等同于 git push origin master:master

手动创建分支方法
创建一个分支
执行 git branch (branchname) 即可

$ git branch testing
$ git branch
* master
  testing

git checkout master 切换分支到master

也可以使用 git checkout -b (branchname) 命令来创建新分支
并立即切换到该分支下

删除分支 
git branch -d (branchname)

git add 添加所有改动内容

git add -A .  点一次添加所有改变的文件
git add -A 添加所有内容

git add .  点表示添加新文件和编辑过的文件,但不包括删除的文件
git add -u  表示添加编辑或者删除的文件,不包括新添加的文件

冲突的解决办法
在git中,可以使用 git add 告诉git 文件冲突已经解决

冲突方法的总结

git checkout master
Switched to branch 'master'
现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。

git merge change_site

当前的分支是master,将 change_site 分支合并过来

Auto-merging runoob.php
CONFLICT (content): Merge conflict in runoob.php
Automatic merge failed; fix conflicts and then commit the result.

$ cat runoob.php     # 打开文件,看到冲突内容
<?php
<<<<<<< HEAD    当前的分支名
echo 1;
=======
echo 'runoob';
>>>>>>> change_site    合并过来的分支名
?>

我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

vim runoob.php 
$ cat runoob.php
<?php
echo 1;
echo 'runoob';
?>
$ git diff
diff --cc runoob.php
index ac60739,b63d7d7..0000000
--- a/runoob.php
+++ b/runoob.php
@@@ -1,3 -1,3 +1,4 @@@
  <?php
 +echo 1;
+ echo 'runoob';
  ?>
  
在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决

$ git status -s
UU runoob.php
$ git add runoob.php
$ git status -s
M  runoob.php
$ git commit
[master 88afe0e] Merge branch 'change_site'
现在我们成功解决了合并中的冲突,并提交了结果。

git clean -n  
查看将要被删除的文件,并不实际删除文件

删除当前工作目录下的未跟踪文件,但不删除文件夹运行
git clean -f 

删除当前工作目录下的未跟踪文件及文件夹运行

git clean -df

执行 git reset HEAD 以取消之前 git add 添加

git命令用法还是有很多,需要不断总结

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值