前言

其实很早以前就知道git了,但是之前真的只是知道一些皮毛。现在想想确实挺后悔当时没有好好学git的。由于工作的最近频繁使用git进行代码的版本控制,学习到了不少东西,在此记录一下。

工作区域

初始化Git并上传到Github

git init
git add *    //也可以使用git add -u 添加已经跟踪的文件,或者git add 指定特定目录。
git commit -m "first commit" // 使用 git commit -s "多行commit"
git remote add origin https://github.com/hanxinyumeng/myNotes.git
git push -u origin master

保存账号和密码

git config --global credential.helper store
git pull /git push (这里需要输入用户名和密码,以后就不用啦)

添加新的更改获取新的文件

git add *
git commit -m "备注"    
git push  //git push --set-upstream origin test  推送到远程分支,并且跟踪远程分支origin test

创建分支

git branch new_branch_name
git checkout -b new_branch_name  //创建分支,并切换到新分支上

查看分支

git branch -a //显示所有分支
git branch -vva //显示所有分支及详细信息
git branch -u origin test  //为当前分支设置远程分支

切换分支及相关其他操作

git checkout branch_name              //切换到指定分支
git checkout branch_name  file_name //从其他分支拉取文件到当前分支
git checkout -b new_branch_name  -t  origin test  //创建当前分支并跟踪到远程分支origin test

查看日志

git log       //显示所有的log信息
git log -p -2 //显示最近两次的log信息,及diff内容
git log --author=“author”    // 显示某个作者的log内容
git show commit_id           //显示某次提交的具体修改
git blame -L 222,227 file_name  //查看文件file_name中222行到227行代码提交的日志

删除文件及分支

  • 删除文件:
git rm test.txt   //删除本地文件
git rm folder_name -r -f //删除本地文件夹
git commit -m "delete file"  //同步到分支
git push origin test         //同步到远程分支
  • 删除分支:
git branch -d branch_name // 删除本地分支branch_name
git push origin  --delete branch_name // 删除远程branch_name分支

diff命令总结

git diff //比较工作目录和暂存区之间的差别
git diff branch1_name  branch2_name //比较两个分支最新提交的区别
git diff HEAD  //比较工作区与最新本地版本库之间的区别
git diff commit_id  //比较工作区与指定的commit_id之间的区别

打补丁

git diff > patch_name   // 将差别生成一个补丁文件
git apply patch_name    //在当前工作区应用补丁
  • 打补丁时经常会遇见冲突的问题,所以可以在应用补丁的时候先试用git apply --check patch_name检查一下,如果没有任何输出,说明可以顺利试用这个path。如果有冲突,也可以先使用git apply patch_name然后再去相应冲突文件解冲突,解冲突后再提交。

版本回退

* 使用git log 查看commit id
* 使用 git  reset --hard    加commit id

git fetch

  • git fetch 与git pull 最大的不同是: git pull 拉下代码后会与 当前分支进行合并,而git fetch 不会进行合并。

    git pull 等价于以下两步:

    1. 经命令中的 pull 换成 fetch, 执行之…

    2. git merge FETCH_HEAD

补充

  • git pull :将服务器代码拉取到本地分支,不会覆盖改动的代码(只有当服务器与本地同时改动同一部分的代码时才会提示冲突)。
  • git stash :将本地改动暂时移除(保存 在git的缓存);
    git stash list :查看分支的git缓存;
    git stash pop :将git缓存的代码改动添加到本地。
  • git cherry-pick可以理解为”挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。详情请看 详细教程

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

sizeof相关总结 上一篇
linux-字符设备驱动框架 下一篇