gitコンパイルインストールと共通コマンド

8552 ワード

git         
=========================================
 :       

1.1:  
    github    (     ):https://github.com/git/git.git
    git   windows mac     :https://git-scm.com/downloads
    
1.2:    (         )
    ~]# yum -y install gcc openssl openssl-devel curl curl-devel unzip perl perl-devel expat expat-devel zlib zlib-devel asciidoc xmlto gettext-devel openssh-clients

    ~]# yum -y install openssh-clients
    # ssh-keygen    -bash: ssh: command not found      


1.3:    
       :
        ~]# make prefix=/usr/local/git all doc
        ~]# make prefix=/usr/local/git install  install-doc install-html

       :
        ~]# yum -y install autoconf
        ~]# make configure         autoconf
        #   :   configure   
        ~]# ./configure --prefix=/usr/local/git 
        ~]# make all doc
        ~]# make install install-doc install-html

       :
    ~]# yum -y install git      #    git
    ~]# yum -y install git-all.noarch      #    git     ,   


1.4:    
    ~]# echo 'export PATH=/usr/local/git/bin:$PATH' > /etc/profile.d/git.sh
    ~]# . /etc/profile.d/git.sh
    ~]# git --version    #     


1.5:man     
    ~]# vim /etc/man_db.conf
    MANDATORY_MANPATH           /usr/local/git/share/man

        
           :
            ~]# git help init
           :
            ~]# man git-init


1.6:ssh  ,  ,       ,            
    1:    :
        ~]# useradd git

    2:  (        git):
        /home/git/.ssh         :700
        /home/git/.ssh/authorized_keys     :600
            ~]# mkdir /home/git/.ssh
            ~]# chmod 700 /home/git/.ssh
            ~]# touch /home/git/.ssh/authorized_keys
            ~]# chmod 600 /home/git/.ssh/authorized_keys
            ~]# chown -R git:git /home/git/.ssh 

        #   : id_rsa     600     id_rsa.pub      644  

    3:       (authorized_keys):
                   id_rsa.pub          /home/git/.ssh/authorized_keys,    ,        ,git          。

    4:     :(    .git)
                 
                ~]# cd /home/git     #   git   
                ~]# git init --bare useryx.git
                    #    git init --bare    .git

                  
            ~]# git init 
                # cd          
            ~]# git clone --bare       .git
                #   :git clone --bare useryx useryx.git
                #       

    5:         git
            ~]# chown git:git useryx.git

    6:    
            ~]# git clone [ssh://]   @  :   .git
                #   :git clone [email protected]:useryx.git                git clone [email protected]:/home/git/dir/a.git


1.7:  ssh    ,      。
    ~]# vim /etc/passwd
        #   git     shell
    1:  linux     /sbin/nologin        
        git:x:1001:1001::/home/git:/sbin/nologin
    2:  git   git-shell   /usr/local/git/bin/git-shell,which git-shell       。
        git:x:1001:1001::/home/git:/usr/local/git/bin/git-shell



 :        

2.1:           ssh-keygen(               )
    ~]# su - git    #    git  
    ~]# ssh-keygen
        #      rsa   ,2048   
    ~]# ssh-keygen -t rsa -b 4096 -C '[email protected]' -P '3a/Jd3v1wq6M1lrAO+Qc4bCHb2W3SynSTg3CT1GS'
        # -t     
        # -C        
        # -b       ,   2048,   4096
        # -P        
            ~]# openssl rand -base64 30      #  30          

    #    ssh-keygen       ,      。


2.2:        
    ~}# git config --global user.name "   "
    ~}# git config --global user.email "  @aliyun.com"


2.3:        
    1:      (      )
        git clone [email protected]:useryx.git
        cd useryx
        touch README.md
        git add README.md
        git commit -m "add README"
        git push -u origin master

    2:         Git   
        cd useryx
        git init
        git remote add origin [email protected]:useryx.git
        git add .
        git commit -m '   '
        git push -u origin master

2.4:        
    ~]# git config --list    git config --l

2.5:     ( .gitgmore)
    ~]#  find ./  -name .gitignore
        #    .gitignore   
    ~]# find ./ -name .gitignore -delete
        #    .gitignore   

    #                


2.6:    
    ~]# git clone file://root/test /tmp/test
    ~]# git clone test /tmp/test
        #     git     



 :    

3.1:    (add)
    ~]# git add filename
        #       
    ~]# git add .       git add -A
        #           


3.2:    (rm)
    ~]# rm                              #            
    ~]# git rm -f filename      #       -f   
    ~]# git rm filename         #          
    ~]# git rm --cached file    #     ,        
    ~]# git cat-file -p hash    #       


3.3:    (mv)
    ~]# mv                                              #        ,        。       
    ~]# git mv filename newfilename     #           

3.4:         (commit)
    ~]# git commit -m '  '
    ~]# git commit -am '  '             #          

3.5:  
    ~]# git status

3.6:    
        (tracked)
        ~]# git ls-files
        (igored)
        ~]# git ls-files -o
        (untracked):
             .gitignore


3.7:     
        ~]# git pull
            #   :            ,    merge
        ~]# git fetch   
            #   :            ,   merge
        ~]# git push origin master
            #   :          ,


3.8:  (log)
    ~]# git log
    ~]# git log --oneline
        #    ,   
    ~]# git log --graph
        #    
    ~]# git log --pretty=oneline --abbrev-commit

3.9:      
    ~]# git diff filename1 filename2
            #     
    ~]# git diff dev
            #           

3.9:    (reset)
    1:git reset –mixed  :      ,        ,     ,  commit index  
    2:git reset –soft  :    commit    ,   index ,      ,  commit
    3:git reset –hard  :         ,                 

    HEAD:         
    ORIG_HEAD:   ,             

    HEAD^        ,        

    ^         
    ~      ,      HEAD^

    ~]# git reset --hard ORIG_HEAD      #       commit     


 :  
3.1:       
        ~]# git branch --all
        ~]# git branch --list

3.:2:       
        ~]# git branch                              #     (      )
        ~]# git branch              #     (     commit id   )
        ~]# git branch bug/first                                #        (      )
        ~]# git branch bug/first                #        (     commit id   )

        ~]# git checkout                    #     
        ~]# git checkout -b               #          

3.3:           
        ~]# git branch                      #     
        ~]# git branch --list             #     
        ~]# git show-branch      #   branch      

3.4:    
    ~]# git branch -d 
    ~]# git branch -D       #       
    ~]# git push origin --delete   #       
    ~]# git push --delete origin   #       

3.5:         
    ~]# git push --set-upstream origin dev
        #     dev    ,         dev       git push

3.6:        
    ~]# git diff dev
        #         dev      

3.5:    
    ~]#  git merge dev
        #    dev        

3.7:       
    ~]# git reset --merge    
        #        

3.8:           
        ~]# git ls-files --unmerged
            1:    
            2:     
            3:     
        ~]# cat filename(     )      
            ++<<<<<
            ============
            ++>>>>>>>>>.
        #          add     

3.9:     
    ~]# git branch -m     #        

3.10:    
    ~]# git push origin   #          


 :   
5.1:tag  
    git   commit,commit           ,  tag           。
              tag   ,            。

5.2:    
    ~]# git tag 

5.3:    
    ~]# git tag
    ~]# git show    #      commit id

5.4:  commit id    
    ~]# git tag  
    ~]# git tag -a  -m "    " 

5.5:    
    ~]# git tag -d         #     
    ~]# git push origin :refs/tags/    #     

5.6:    
    ~]# git push origin        
    ~]# git push origin --tags   #     



 :        

6.1:git status          
    git config --global core.quotepath false

6.2:         (       )(   git        )
    git config core.filemode false