以下是一位同学对git版本控制的辛苦整理结果,收藏下 第一部分:Shell常用命令介绍 第二部分:Git安装及基本配置,Git本地常用命令 第三部分:SSH使用和配置,Git远程操作 内容详细: 第一部分:Shell常用命令 特殊目录:.(一个点,表示当前目录), ..(两个点,表示上级目录) ,~(表示当前用户的home目录) pwd:显示当前你所在的目录 cd: 改变你所在的目录 用法:cd directory, cd demo,进入到demo目录。 cd ~,进入用户的home目录。 cd .. ,进入上级目录。 ls: 把当前目录下面的文件内容展示出来 用法:ls 显示当前目录下的非隐藏文件。 ls -l 显现当前目录下的非隐藏文件,每行只显示一个文件 ls -a 显示当前目录下所有文件(此时结果会有:.,..,以及一些点开头的文件) touch:更改文件的修改时间,如果该文件不存在则创建该文件 用法:touch filename mkdir: 创建一个目录 用法:mkdir directory_name rmdir: 删除一个空目录 用法:rmdir directory_name rm: 删除文件 用法:rm filename,删除指定文件。 rm -rdirectory_name,删除指定文件夹以及它子目录下的所有内容,-r指:recursive cp:拷贝文件或文件夹 用法:cp ori_file dest_file,将ori_file文件内容拷贝到dest_file文件中,如果当前目录下原来没有dest_file则创建该文件,如果有则覆盖原有的文件 cp ori_file ../, 将ori_file文件拷贝到上级目录下 cp -r ori_dir_name, ../,将ori_dir_name目录及它子目录下面的内容拷贝到上级目录下,在上级目录下会多出一个ori_dir_name的目录 mv:移动文件或文件夹 用法:mv ori_file dest_file,将ori_file文件内容移动到dest_file文件中,在同一个目录下操作效果和重命名等价 mv ori_file ../,将ori_file文件移动到上级目录下,当前目录下的ori_file消失,上级目录下多出ori_file mv ori_dir_name, des_dir_name,将ori_dir_name目录移动到des_dir_name目录,效果和重命名文件夹等价 第二部分:Git配置和本地常用命令 Git配置有三个级别,它们分别是系统级,用户级和版本库级,对于某个版本库来说配置文件的优先级版本库级别的配置最高,用户级其次,系统级最低。 版本库级配置以git config 开头,这个通常用来配置和这个版本库密切相关的信息,如remote 用户级配置以git config --global开头,通常用来配置用户姓名,邮箱等 例:git config --global user.name "you name" git config --global user.email "you email address" git config --global color.ui true, 让git的输出内容有颜色显示,如果git status,gitlog, git diff 等会有输出的命令 系统级配置以git config --system开头,这个配置文件很少用到 Git本地命令: git init:创始化一个版本库,完成之后会在当前目录下生成一个隐藏文件夹.git,所以版本库的信息都在这个目录下面。 这种初始化的方式是比较常用的,我们在用git管理自己本地开发项目代码时都使用这种初始化方式。 git init --bare: 创建一个裸的版本库,完成之后当前目录想会多出很多文件,这些文件和git init 完成后.git目录下内容是一致的 这种初始化方式通常用在代码管理的服务器上,因为服务器上不需要工作目录,因此裸的版本库就够用了,同时还能节省空间。 Git使用中的三个重要概念 工作区,暂处区和版本库。 工作区:我们编写文件,代码的地方,换种理解就是指非.git目录下的内容 暂存区:我们使用git add命令后,存放这些被add过文件地方 版本库:我们使用git commit命令后,存放这些被commit文件的地方 git add: 工作区内容添加到暂存区 用法:git add filename,将filename文件添加到暂存区 git add directory_name,将directory_name目录以及其目录下的所有内容添加到暂存区。 git add -u,将当前目录及其子目录下被用户修改的且已经在版本库或暂存区中的文件添加到暂存区 git add.,将当前目录及其子目录下的文件添加到暂存区中,不论文件之前是否在暂存区或版本库中 git commit:将暂存区的内容添加到版本库中 用法:git commit -m "Commit Description", -m参数后面跟的是本次提交的描述,这个描述需要说明这次发生的更改,比如修复了一个什么样的bug,增加了一个什么样的功能。 git commit -m "Commit Description Title" \ -m "Commit Description1" \ -m "Commit Description2" \ -m "Commit Description3" 用这种方式可以用多行描述了说明这次提交的作用 git commit , 这种方式会打开系统Shell下默认的文本编辑工具,一般情况下是vim或者vi,我们可以通过文本编辑工具来写这次提交的描述信息。 git log:查看提交历史 用法:git log,显示所有的提交历史,每次提交描述信息详尽 git log --oneline,显示所有提交历史,但是每个提交指显示一行,一行的内容只包括commit的一个hash值和提交描述内容 git log -数值,显示指定数量的提交,如git log -5,显示5条最近的提交信息 第三部分:SSH使用和配置,Git远程操作 SSH使用和配置: 用法:sshusername@server_address,例子:ssh git@10.82.81.68 ssh 别名,例子: ssh git_sx,别名需要额外配置 别名配置文件位置:~/.ssh/config,可以通过系统文本编辑工具或用vim打开这个文件进行编辑 配置信息如下: Host 别名 Hostname server_address User username 配置信息例举: Host git_sx Hostname 10.82.81.68 User git SSH免登陆密码配置: 1.进入用户的.ssh目录:cd ~/.ssh 2.用ls查看是否已经有id_rsa,id_rsa.pub文件存在,如果已经存在可以新建一个backup目录,并把者两个文件移动到backup目录下区,然后下一步;如果没有直接下一步 3.生成私钥/公钥对,使用命令:ssh-keygen -t rsa -C "your emailaddress" 3.1. 提示输入一个存法私钥/公钥对的文件名,此处直接按回车键 3.2. 提示输入你的私钥,注意这个和帐户登陆服务器密码是可以不一样的 3.3. 提示再次输入你的私钥,按回车后私钥/公钥对就会自动生成了。 4.生成完成以后,使用ls发现,目录下id_rsa和id_rsa.pub两个文件生成。 5.将id_rsa.pub文件拷贝到服务器:scpid_rsa.pub git@10.82.81.68 :~/xxx_id_rsa.pub或scp id_rsa.pub git_sx:~/xxx_id_rsa.pub 6.远程登陆到服务器: ssh git@10.82.81.68 或ssh git_sx 7.加自己刚刚上传的公钥内容添加到你登陆帐户的.ssh/authorized_keys文件中: cat xxx_id_rsa.pub >> ~/.ssh/authorized_keys 8.退出服务器:exit 9.重新远程登陆服务器,发现这次我们是输自己的私钥而不是帐户在服务器上的登陆密码 Git远程操作: 1.在服务器上创建一个裸版本库, 2.在本地创建一个版本库,完成一次提交 3.为本地的版本配置remote,如果git config remote add origin ssh://username@server_address/repo_paht username@server_address 可以使用.ssh/config里面配置的别名代替 4.将本地版本库内容提交到远程版本库:git push -u originmaster:master 5.从远程版本库同步代码:git pull 6.想远程版本库提交代码:git push 从服务器其上clone一个版本库:git clone ssh://username@server_address/repo_path , clone下来的版本库默认就会有一个remote的配置,不需要手动设置了。