(个人笔记)linux下git的使用

四个概念:
1. 工作目录:就是本地你的工作目录,里面是你的代码文件
2. 暂存区域:当你修改了你工作目录里的文件,通过git add的操作将修改的文件提交到暂存区域
3. 本地git版本库:当你想将当前的暂存区域做一次版本的保存,通过git commit操作将暂存区域的文件提交到本地git版本库
4. 远程git版本库:在git服务器上的git版本库,通过git push操作将你的本地git版本库合并到远程git版本库,这样别人就能看到你做的修改。或者通过git pull操作将远程git版本库合并到你的本地git版本库,来查看别人的修改。
安装git:
Linux下: sudo apt install git 安装git
Windows下:用vs2017下载git组件,然后在你的开始菜单里会有一个git bash。以下的操作用git bash完成
一.连接git服务器:
设置ssh公钥密钥,可以免密码登陆git账户  
1. ssh-keygen -t rsa -C "username"  (username为你的名字或主机名,然后一直回车)
2. scp ~/.ssh/id_rsa.pub [email protected]:~/ssh-pubkeys/username.pub
3. ssh [email protected] 通过ssh登陆git服务器
4. cat ~/ssh-pubkeys/username.pub | sudo tee -a /home/git/.ssh/authorized_keys
此时,你就可以免密码ssh登陆git账户了
5. exit  退出ssh登陆 
二.关于git的操作
1. 配置git(配置一次即可)
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
配置你的名字和邮箱,这样当你push你的修改时,别人可以看到是谁的push
 为了解决不同平台的换行符的问题做的配置(没有检验过,只是看网上说的):
 对于windows系统: git config --global core.autocrlf true
 对于linux系统:git config --global core.autocrlf input
可以通过git config --list命令查看当前配置

git clone ......

将git服务器的仓库下载到本地,其中xxxx为仓库名字,如果不知道服务器中有哪些仓库,参照上一条(创建和查看远程仓库)

git status  查看各个文件的状态。多用几次就懂了。。。。

git add .   这条命令将所有改变过的文件添加到暂存区域

git commit -m "message"  提交所有暂存区域的文件到本地git版本库其中message为你对本次commit的描述

git push origin master  将本地git版本库合并到远程git版本库,其中master为分支名字。一般默认都是master分支

git push可能会遇到的问题:当远程git仓库被别人修改时,你的git push会冲突。此时你需要执行git pull命令,将此时远程git仓库合并到你的本地git仓库。若没有提示冲突的问题,你只需要再次git push origin master即可;若提示冲突,会提示你冲突的文件名,你需要查看该文件,修改,然后git commit,再git push origin master即可。

三.git的其他可能用到的操作
1. 查看提交信息
   git log  可以查看每一次的commit信息(提交ID,提交人,提交时间,提交信息)
   git log --oneline 查看每次简略的commit信息
2. 回退版本
   git reset file-name  将你之前对名字为file-name的文件做的git add操作取消。
   git reset --hard HEAD  将你的工作目录,暂存区域回退到上一次git commit
   git reset --hard HEAD~n  n为数字,表示回退n个版本(HEAD~1表示上上次commit)
   git reset --hard commit-ID  commit-ID可以用git log查看,可以精确的回退到某个 commit版本
   以上的操作都是针对整个工作目录的回退,也可以对某个文件回退
   git checkout commit-ID -- filename  即将名为filename的文件回退到该ID的commit版本
3. 比较,即显示更改的部分
   git diff
     比较工作目录和暂存区
   git diff --cached
     比较暂存区和上次提交
   git diff HEAD
     比较工作目录和上次提交
   git diff commit-ID1 commit-ID2
     比较两次版本的差异(commit-ID也可以用HEAD~n这样的形式替代)

其他操作: http://www.yiibai.com/git/git-quick-start.html


四. 示例
   完成以下示例你需要先完成上面的 一.连接git服务器  以及 二.关于git的操作中的 1. 配置git
   关于目录结构的说明:
       建议自己创建一个build目录,用于存放编译文件
Linux下:
1. git clone [email protected]:/git/template.git
2. cd template
3. mkdir build
4. cd build
5. cmake ..
该命令是根据CMakeLists.txt执行的,为了生成Makefile文件。当CMakeLists.txt文件没有修改时,以后不用再次执行
6. make
此时可执行文件cmake-template已在build目录下生成
make命令是根据Makefile文件来进行编译的任务,当你对源代码修改之后,需要执行该命令更新可执行文件
7. ./cmake-template
执行你编译的可执行文件
       以上是将git服务器上的git版本库下载到本地并编译执行的操作
       接下来是对代码修改,编译,执行成功后,更新到git服务器的操作
1. 修改代码 
比如:打开src目录下的main.cpp文件,加上一句printf("helloword\n")
2. 编译
进入build目录,运行make命令
3. 执行
./cmake-template
你可以看到此时可执行文件的输出比之前多了一个helloword
4. 提交到本地git版本库
git add .    将修改内容添加到暂存区域
git commit -m "add helloword"   提交到本地git版本库,注释为add helloword
5. 更新到git服务器
git push origin master
如果git push遇到问题,查看 二.关于git的操作 的最后

猜你喜欢

转载自blog.csdn.net/weixin_41662661/article/details/80911420